C#PropertyBuilder:如何设置值?

时间:2012-01-04 01:10:30

标签: c#

我使用PropertyBuilder创建了一个属性构建器(它位于一个类型中,使用TypeBuilder构建,您可以猜到它位于模块内部。依此类推,直到装配)

我想在我刚刚构建之后设置我的属性的值(在这种情况下通常是Dictionary<string,object>)。它有一个SetValue方法,但我会被抛出第一个参数(对象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分配值。

1 个答案:

答案 0 :(得分:0)

好的,所以SetValue的Object参数是保存我想要设置的值的属性的对象。但是,虽然我已经通过TypeBuilder定义了属性,但它没有被创建(因为你必须调用CreateType()并实例化它)。

长话短说?首先定义所有内容,然后创建它,然后使用创建的对象作为第一个参数,通过SetValue分配值。