Динамическое добавление членов к динамическому объекту

Я ищу способ динамического добавления членов в динамический объект. Хорошо, я думаю, что нужно немного разъяснений ...

Когда вы делаете это:

dynamic foo = new ExpandoObject();
foo.Bar = 42;

Bar свойство будет добавлено динамически во время выполнения. Но код все еще «статически» ссылается на Bar (имя «Bar» жестко запрограммировано) ... Что если я хочу добавить свойство во время выполнения, не зная его имени во время компиляции?

Я знаю, как сделать это с пользовательским динамическим объектом (я на самом деленаписал об этом в блоге несколько месяцев назад), используя методыDynamicObject класс, но как я могу сделать это сЛюбые динамический объект?

Я мог бы использоватьIDynamicMetaObjectProvider интерфейс, но я не понимаю, как его использовать. Например, какой аргумент я должен передатьGetMetaObject метод? (это ожидаетExpression)

И, кстати, как вы выполняете отражение на динамических объектах? «Регулярное» отражение иTypeDescriptor не показывать динамические элементы ...

Любое понимание будет оценено!

Ответы на вопрос(4)

Ваш ответ на вопрос