//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); } }
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