C#属性生成器:如何设置值
本文关键字:设置 何设置 属性 | 更新日期: 2023-09-27 18:19:33
我已经使用PropertyBuilder
创建了一个属性生成器(它位于类型内部,使用TypeBuilder构建,您可以猜测它位于模块内部。依此类推,直到Assembly)
我想在刚构建完属性后设置它的值(在本例中具体为Dictionary<string,object>
)。它有一个SetValue
方法,但我被抛出了第一个参数(Object obj:我正在设置的对象值)。
这是我的:
Dictionary<string,Object> expectations = new Dictionary<string,object>();
PropertyBuilder builder = typeBuilder.DefineProperty("Expectations",
PropertyAttributes.HasDefault,
typeof(Dictionary<string, Object>), null);
//builder.SetValue(???)
return builder;
我的方向是否正确?
更新
好的,所以SetValue的Object参数是一个对象,它保存了我要设置的值的属性。然而,尽管我已经通过TypeBuilder
定义了属性,但它并没有被创建(因为您必须调用CreateType()
并实例化它)。
长话短说?首先定义所有内容,然后创建它,然后使用创建的对象作为第一个参数通过SetValue
分配值。
好的,所以SetValue的Object参数是保存我试图设置的值的属性的对象。然而,尽管我已经通过TypeBuilder定义了该属性,但它并没有被创建(因为您必须调用CreateType()并实例化它)。
长话短说?首先定义所有内容,然后创建它,然后使用创建的对象作为第一个参数通过SetValue分配值。