System.Web.Compilation.TemplateControlCompiler.CreateConvertToCall C# (CSharp) Method

CreateConvertToCall() static private method

static private CreateConvertToCall ( TypeCode typeCode, System.CodeDom.CodeExpression expr ) : CodeMethodInvokeExpression
typeCode TypeCode
expr System.CodeDom.CodeExpression
return System.CodeDom.CodeMethodInvokeExpression
		internal static CodeMethodInvokeExpression CreateConvertToCall (TypeCode typeCode, CodeExpression expr)
		{
			var ret = new CodeMethodInvokeExpression ();
			string methodName;

			switch (typeCode) {
				case TypeCode.Boolean:
					methodName = "ToBoolean";
					break;

				case TypeCode.Char:
					methodName = "ToChar";
					break;

				case TypeCode.SByte:
					methodName = "ToSByte";
					break;

				case TypeCode.Byte:
					methodName = "ToByte";
					break;
					
				case TypeCode.Int16:
					methodName = "ToInt16";
					break;

				case TypeCode.UInt16:
					methodName = "ToUInt16";
					break;

				case TypeCode.Int32:
					methodName = "ToInt32";
					break;

				case TypeCode.UInt32:
					methodName = "ToUInt32";
					break;

				case TypeCode.Int64:
					methodName = "ToInt64";
					break;
					
				case TypeCode.UInt64:
					methodName = "ToUInt64";
					break;

				case TypeCode.Single:
					methodName = "ToSingle";
					break;

				case TypeCode.Double:
					methodName = "ToDouble";
					break;

				case TypeCode.Decimal:
					methodName = "ToDecimal";
					break;

				case TypeCode.DateTime:
					methodName = "ToDateTime";
					break;

				case TypeCode.String:
					methodName = "ToString";
					break;

				default:
					throw new InvalidOperationException (String.Format ("Unsupported TypeCode '{0}'", typeCode));
			}

			var typeRef = new CodeTypeReferenceExpression (typeof (Convert));
			typeRef.Type.Options = CodeTypeReferenceOptions.GlobalReference;
			
			ret.Method = new CodeMethodReferenceExpression (typeRef, methodName);
			ret.Parameters.Add (expr);
			ret.Parameters.Add (new CodePropertyReferenceExpression (new CodeTypeReferenceExpression (typeof (System.Globalization.CultureInfo)), "CurrentCulture"));
			
			return ret;
		}
		
TemplateControlCompiler