2012-01-04 2 views
1

Я создал свойство строитель, используя PropertyBuilder (который находится внутри типа, построенный с TypeBuilder, и, как вы можете догадаться, находится внутри модуля. Так далее, и так далее до собрания)C# PropertyBuilder: как установить значение?

Я хотел бы установить значение моего свойства (в данном случае 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; 

Am I даже в правильном направлении?

UPDATE

Ok, поэтому параметр Object SetValue является объект, который имеет свойство значения Я пытаюсь установить. Однако, хотя я определил свойство через TypeBuilder, он не создан (поскольку вам нужно позвонить CreateType() и создать его экземпляр).

Длинная история короткая? Сначала определите все, затем создайте его, затем назначьте значения через SetValue, используя созданный объект в качестве первого параметра.

+0

Можете ли вы показать 'builder.SetValue', что вы пробовали? –

+0

Вы ответили на свой вопрос? Если да, добавьте его в раздел «Ответы» и отметьте вопрос как ответ. – jklemmack

ответ

0

Итак, параметр объекта SetValue - это объект, который содержит свойство значения, которое я пытаюсь установить. Однако, хотя я определил свойство с помощью TypeBuilder, он не создан (поскольку вам нужно вызвать CreateType() и создать его экземпляр).

Длинная история короткая? Сначала определите все, затем создайте его, затем назначьте значения через SetValue, используя созданный объект в качестве первого параметра.

Смежные вопросы