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