Пример #1
0
 //Presets
 public static object InstanceOfCustomType(TypePresets customType, string typeName)
 {
     if (customType == TypePresets.NotThreadSafe)
     {
         Type         type = CustomType(customType, typeName);
         PropertyInfo pi   = type.GetProperty("Instance");
         return(pi.GetValue(type));
     }
     else
     {
         return(null);
     }
 }
Пример #2
0
        public static Type CustomType(TypePresets customType, string typeName)
        {
            if (assemblyBuilder == null)
            {
                assemblyBuilder = GetAssemblyBuilder();
                moduleBuilder   = GetModuleBuilder();
            }

            TypeBuilder typeBuilder = GetTypeBuilder(typeName, moduleBuilder);

            if (customType == TypePresets.NotThreadSafe)
            {
                ConstructorBuilder constructorBuilder = GetConstructorBuilder(typeBuilder);
                FieldBuilder       field_instance     = GetFieldBuilder(typeBuilder);                           //wa: = default
                PropertyBuilder    property_Instance  = GetPropertyBuilder(typeBuilder, field_instance, constructorBuilder);

                MethodBuilder method_AnyMethod_Static   = GetMethodBuilder_AnyMethod_Static(typeBuilder, typeName);
                MethodBuilder method_AnyMethod_Instance = GetMethodBuilder_AnyMethod_Instance(typeBuilder, typeName);
            }

            Type type = typeBuilder.CreateType();

            return(type);
        }   //Type vs T