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

CreateDBAttributeMethod() static private method

static private CreateDBAttributeMethod ( ControlBuilder builder, string attr, System.CodeDom.CodeExpression code ) : void
builder System.Web.UI.ControlBuilder
attr string
code System.CodeDom.CodeExpression
return void
		void CreateDBAttributeMethod (ControlBuilder builder, string attr, CodeExpression code)
		{
			if (code == null)
				return;

			string id = builder.GetNextID (null);
			string dbMethodName = "__DataBind_" + id;
			CodeMemberMethod method = builder.Method;
			AddEventAssign (method, builder, "DataBinding", typeof (EventHandler), dbMethodName);

			method = CreateDBMethod (builder, dbMethodName, GetContainerType (builder), builder.ControlType);
			builder.DataBindingMethod = method;

			CodeCastExpression cast;
			CodeMethodReferenceExpression methodExpr;
			CodeMethodInvokeExpression expr;

			CodeVariableReferenceExpression targetExpr = new CodeVariableReferenceExpression ("target");
			cast = new CodeCastExpression (typeof (IAttributeAccessor), targetExpr);
			methodExpr = new CodeMethodReferenceExpression (cast, "SetAttribute");
			expr = new CodeMethodInvokeExpression (methodExpr);
			expr.Parameters.Add (new CodePrimitiveExpression (attr));
			CodeMethodInvokeExpression tostring = new CodeMethodInvokeExpression ();
			tostring.Method = new CodeMethodReferenceExpression (
							new CodeTypeReferenceExpression (typeof (Convert)),
							"ToString");
			tostring.Parameters.Add (code);
			expr.Parameters.Add (tostring);
			method.Statements.Add (expr);
			mainClass.Members.Add (method);
		}
TemplateControlCompiler