Динамическое добавление членов к динамическому объекту
Я ищу способ динамического добавления членов в динамический объект. Хорошо, я думаю, что нужно немного разъяснений ...
Когда вы делаете это:
dynamic foo = new ExpandoObject();
foo.Bar = 42;
Bar
свойство будет добавлено динамически во время выполнения. Но код все еще «статически» ссылается на Bar (имя «Bar» жестко запрограммировано) ... Что если я хочу добавить свойство во время выполнения, не зная его имени во время компиляции?
Я знаю, как сделать это с пользовательским динамическим объектом (я на самом деленаписал об этом в блоге несколько месяцев назад), используя методыDynamicObject
класс, но как я могу сделать это сЛюбые динамический объект?
Я мог бы использоватьIDynamicMetaObjectProvider
интерфейс, но я не понимаю, как его использовать. Например, какой аргумент я должен передатьGetMetaObject
метод? (это ожидаетExpression
)
И, кстати, как вы выполняете отражение на динамических объектах? «Регулярное» отражение иTypeDescriptor
не показывать динамические элементы ...
Любое понимание будет оценено!