示例#1
0
        protected void DefineLiteral(
            EnumBuilder enumBuilder,
            string name,
            int number,
            string defaultValue,
            DCField field)
        {
            FieldBuilder           fieldBuilder   = enumBuilder.DefineLiteral(name, (object)number);
            CustomAttributeBuilder customBuilder1 = new CustomAttributeBuilder(typeof(EnumMemberAttribute).GetConstructor(Type.EmptyTypes), new object[0]);

            fieldBuilder.SetCustomAttribute(customBuilder1);
            DCBuilderType dcBuilderType = this.dCTypeStore.GetDCBuilderType("EnumerationAttribute");

            if (dcBuilderType != null)
            {
                CustomAttributeBuilder customBuilder2 = new CustomAttributeBuilder(dcBuilderType.Type.GetConstructor(new Type[1]
                {
                    typeof(string)
                }), new object[1] {
                    (object)defaultValue
                });
                fieldBuilder.SetCustomAttribute(customBuilder2);
            }
            if (field == null)
            {
                return;
            }
            this.AddMetadataAttribute(fieldBuilder, field);
        }
示例#2
0
 protected PropertyBuilder DefineProperty(
     TypeBuilder typeBuilder,
     string name,
     Type type,
     DCField field)
 {
     return(this.DefineProperty(typeBuilder, name, type));
 }
示例#3
0
        private void AddMetadataAttribute(FieldBuilder fieldBuilder, DCField field)
        {
            DCBuilderType dcBuilderType = this.dCTypeStore.GetDCBuilderType("MetadataAttribute");

            if (dcBuilderType == null || field == null)
            {
                return;
            }
            CustomAttributeBuilder customBuilder = new CustomAttributeBuilder(dcBuilderType.Type.GetConstructor(new Type[11]
            {
                typeof(string),
                typeof(string),
                typeof(bool),
                typeof(bool),
                typeof(bool),
                typeof(string),
                typeof(int),
                typeof(bool),
                typeof(bool),
                typeof(bool),
                typeof(string)
            }), new object[11]
            {
                (object)field.Description,
                (object)field.FieldTypeName,
                (object)field.IsUserDefinedField,
                (object)field.IsRequired,
                (object)field.IsReadOnly,
                field.IsEnum ? (object)field.EnumFieldTypeName : (object)field.TypeName,
                (object)field.Label,
                (object)field.CreateOnInitialize,
                (object)field.IsList,
                (object)field.HasSelVal,
                string.IsNullOrEmpty(field.DefaultValue) ? (object)(string)null : (object)field.DefaultValue
            });

            fieldBuilder.SetCustomAttribute(customBuilder);
        }
示例#4
0
        protected FieldBuilder DefineField(
            TypeBuilder typeBuilder,
            string name,
            Type type,
            DCField field,
            bool isPrivate)
        {
            FieldBuilder fieldBuilder = typeBuilder.DefineField((isPrivate ? "_" : "") + name, type, !isPrivate || this._IsSilverlight ? FieldAttributes.Public : FieldAttributes.Family);

            if (this._IsSilverlight)
            {
                CustomAttributeBuilder customBuilder = new CustomAttributeBuilder(typeof(EditorBrowsableAttribute).GetConstructor(new Type[1]
                {
                    typeof(EditorBrowsableState)
                }), new object[1]
                {
                    (object)EditorBrowsableState.Never
                });
                fieldBuilder.SetCustomAttribute(customBuilder);
            }
            this.AddMetadataAttribute(fieldBuilder, field);
            this.AddDataMemberAttribute(typeBuilder.Name, fieldBuilder, name);
            return(fieldBuilder);
        }