C#使用Emit生成构造函数和属性
假设我们需要一个名叫Kitty的类,其在Pets程序集下。 1 // specify a new assembly name 2 var assemblyName = new AssemblyName("Pets"); 3 4 // create assembly builder 5 var assemblyBuilder = AppDomain.CurrentDomain 6 .DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave); 7 8 // create module builder 9 var moduleBuilder = assemblyBuilder.DefineDynamicModule("PetsModule", "Pets.dll"); 10 11 // create type builder for a class 12 var typeBuilder = moduleBuilder.DefineType("Kitty", TypeAttributes.Public); 定义字段 Kitty类包含两个私有字段_id和_name。用类型构造器来定义, 1 var fieldId = typeBuilder.DefineField( 2 "_id", typeof(int),