示例#1
0
        private void AddEnumeration(DCType dCType)
        {
            var            type1       = baseAssembly.GetType(nameSpacePrefix + "Enumeration`2");
            var            enumBuilder = DefineEnum(nameSpacePrefix + dCType.Name);
            var            isEmptyEnum = true;
            List <DCField> fields      = dCType.GetFields();
            var            type2       = typeof(string);

            foreach (var field in fields)
            {
                type2 = dCTypeStore.GetDCBuilderType(field.EnumFieldTypeName).Type.GetGenericArguments()[0];
                int result;
                DefineLiteral(enumBuilder, field.Name,
                              int.TryParse(field.DefaultValue, out result) ? result : field.Name.GetHashCode(),
                              field.DefaultValue, field);
                isEmptyEnum = false;
            }

            var type3 = enumBuilder.CreateType();
            var type4 = type1.MakeGenericType(type3, type2);

            dCTypeStore.Add(dCType.Name, type4, (TypeBuilder)null, true, isEmptyEnum);
        }
 public virtual void AddDC(DCType dCType)
 {
     dCTypeStore.Add(dCType.Name, typeof(string), (TypeBuilder)null);
 }