private void AddMemberField(string memberName, CodeTypeReference memberType, CodeTypeDeclaration parentType) { CodeMemberField mem = new CodeMemberField(memberType, memberName) { Attributes = MemberAttributes.Private }; CodeDomHelper.AddBrowseNever(mem); parentType.Members.Add(mem); }
public static CodeMemberField CreateMemberField(string memberName, string typeName, MemberAttributes attributes, bool init) { CodeMemberField field = new CodeMemberField(typeName, memberName); CodeDomHelper.AddBrowseNever(field); field.Attributes = attributes; if (init) { field.InitExpression = new CodeObjectCreateExpression(typeName, new CodeExpression[0]); } return(field); }
public static CodeMemberField CreateGenericMemberField(string memberName, string typeName, CodeTypeReference[] typeParams, MemberAttributes attributes, bool init) { CodeTypeReference typeRef = new CodeTypeReference(typeName, typeParams); CodeMemberField field = new CodeMemberField(typeRef, memberName); CodeDomHelper.AddBrowseNever(field); field.Attributes = attributes; if (init) { field.InitExpression = new CodeObjectCreateExpression(typeRef, new CodeExpression[0]); } return(field); }
private CodeMemberProperty BuildLocalElementDictionary() { CodeMemberProperty localDictionaryProperty = CodeDomHelper.CreateInterfaceImplProperty("LocalElementsDictionary", "IXMetaData", CodeDomHelper.CreateDictionaryType("XName", "System.Type")); CodeMemberField localDictionaryField = CodeDomHelper.CreateDictionaryField("localElementDictionary", "XName", "System.Type"); CodeMemberMethod localDictionaryMethod = CodeDomHelper.CreateMethod("BuildElementDictionary", MemberAttributes.Abstract | MemberAttributes.Final | MemberAttributes.Static | MemberAttributes.Assembly | MemberAttributes.FamilyOrAssembly | MemberAttributes.Private, null); localDictionaryMethod.Statements.AddRange(this.propertyDictionaryAddStatements); this.decl.Members.Add(localDictionaryField); this.decl.Members.Add(localDictionaryMethod); localDictionaryProperty.GetStatements.Add(new CodeMethodReturnStatement(CodeDomHelper.CreateFieldReference(null, "localElementDictionary"))); CodeDomHelper.AddBrowseNever(localDictionaryProperty); CodeDomHelper.AddBrowseNever(localDictionaryField); return(localDictionaryProperty); }
protected void CreateFixedDefaultValue(CodeTypeDeclaration typeDecl) { if (this.fixedDefaultValue != null) { CodeMemberField fixedOrDefaultField = null; CodeTypeReference returnType = this.ReturnType; if (this.unionDefaultType != null) { returnType = new CodeTypeReference(this.unionDefaultType.ToString()); } fixedOrDefaultField = (this.FixedValue == null ? new CodeMemberField(returnType, NameGenerator.ChangeClrName(base.PropertyName, NameOptions.MakeDefaultValueField)) : new CodeMemberField(returnType, NameGenerator.ChangeClrName(base.PropertyName, NameOptions.MakeFixedValueField))); CodeDomHelper.AddBrowseNever(fixedOrDefaultField); fixedOrDefaultField.Attributes = fixedOrDefaultField.Attributes & (MemberAttributes.Abstract | MemberAttributes.Final | MemberAttributes.Static | MemberAttributes.Override | MemberAttributes.Const | MemberAttributes.New | MemberAttributes.Overloaded | MemberAttributes.ScopeMask | MemberAttributes.VTableMask) & (MemberAttributes.New | MemberAttributes.Overloaded | MemberAttributes.Assembly | MemberAttributes.FamilyAndAssembly | MemberAttributes.Family | MemberAttributes.FamilyOrAssembly | MemberAttributes.Private | MemberAttributes.Public | MemberAttributes.AccessMask | MemberAttributes.VTableMask) | MemberAttributes.Private | MemberAttributes.Static; fixedOrDefaultField.InitExpression = SimpleTypeCodeDomHelper.CreateFixedDefaultValueExpression(returnType, this.fixedDefaultValue); typeDecl.Members.Add(fixedOrDefaultField); } }
private void ImplementIXMetaData() { string interfaceName = "IXMetaData"; CodeMemberProperty schemaNameProperty = CodeDomHelper.CreateSchemaNameProperty(this.clrTypeInfo.schemaName, this.clrTypeInfo.schemaNs); this.ImplementCommonIXMetaData(); if (!this.clrTypeInfo.HasElementWildCard) { this.ImplementContentModelMetaData(); } else { this.ImplementFSMMetaData(); } CodeMemberProperty typeOriginProperty = CodeDomHelper.CreateTypeOriginProperty(this.clrTypeInfo.typeOrigin); CodeDomHelper.AddBrowseNever(schemaNameProperty); CodeDomHelper.AddBrowseNever(typeOriginProperty); this.decl.Members.Add(schemaNameProperty); this.decl.Members.Add(typeOriginProperty); this.decl.Members.Add(CodeDomHelper.AddBrowseNever(CodeDomHelper.CreateTypeManagerProperty())); this.decl.BaseTypes.Add(interfaceName); }
protected override void ImplementContentModelMetaData() { CodeMemberMethod getContentModelMethod = null; if (!this.HasElementProperties) { getContentModelMethod = TypeBuilder.DefaultContentModel(); } else if (this.declItemsInfo.contentModelExpression == null) { getContentModelMethod = TypeBuilder.DefaultContentModel(); } else { CodeTypeReference cmType = new CodeTypeReference("ContentModelEntity"); this.declItemsInfo.staticConstructor.Statements.Add(new CodeAssignStatement(new CodeVariableReferenceExpression("contentModel"), this.declItemsInfo.contentModelExpression)); CodeMemberField contentModelField = new CodeMemberField(cmType, "contentModel"); CodeDomHelper.AddBrowseNever(contentModelField); contentModelField.Attributes = MemberAttributes.Abstract | MemberAttributes.Final | MemberAttributes.Static | MemberAttributes.Assembly | MemberAttributes.FamilyOrAssembly | MemberAttributes.Private; this.decl.Members.Add(contentModelField); getContentModelMethod = CodeDomHelper.CreateInterfaceImplMethod("GetContentModel", "IXMetaData", cmType, "contentModel"); } this.decl.Members.Add(getContentModelMethod); }