void CreateContentPlaceHolderTemplateProperty (string backingField, string name)
{
CodeMemberProperty prop = new CodeMemberProperty ();
prop.Type = new CodeTypeReference (typeof (ITemplate));
prop.Name = name;
prop.Attributes = MemberAttributes.Public;
var ret = new CodeMethodReturnStatement ();
var fldRef = new CodeFieldReferenceExpression (thisRef, backingField);
ret.Expression = fldRef;
prop.GetStatements.Add (ret);
prop.SetStatements.Add (new CodeAssignStatement (fldRef, new CodePropertySetValueReferenceExpression ()));
prop.CustomAttributes.Add (new CodeAttributeDeclaration ("TemplateContainer", new CodeAttributeArgument [] {
new CodeAttributeArgument (new CodeTypeOfExpression (new CodeTypeReference (typeof (MasterPage))))
}
)
);
var enumValueRef = new CodeFieldReferenceExpression (new CodeTypeReferenceExpression (typeof (TemplateInstance)), "Single");
prop.CustomAttributes.Add (new CodeAttributeDeclaration ("TemplateInstanceAttribute", new CodeAttributeArgument [] {
new CodeAttributeArgument (enumValueRef)
}
)
);
mainClass.Members.Add (prop);
}