メンバーを動的オブジェクトに動的に追加する方法を探しています。OK、少し説明が必要だと思います...
あなたがそれをするとき:
dynamic foo = new ExpandoObject();
foo.Bar = 42;
プロパティはBar
実行時に動的に追加されます。しかし、コードは引き続き Bar を「静的に」参照します (「Bar」という名前はハードコードされています)... コンパイル時に名前を知らずに実行時にプロパティを追加したい場合はどうすればよいでしょうか?
クラスのメソッドを使用して、カスタムの動的オブジェクトでこれを行う方法を知っていますが (実際には数か月前にブログを書きました)、動的オブジェクトでどのように行うことができますか?DynamicObject
おそらくIDynamicMetaObjectProvider
インターフェースを使用できますが、使用方法がわかりません。たとえば、どの引数をGetMetaObject
メソッドに渡す必要がありますか? (それは を期待しますExpression
)
ところで、動的オブジェクトに対してどのようにリフレクションを実行しますか? 「通常の」リフレクションでTypeDescriptor
、動的メンバーを表示しない...
どんな洞察もいただければ幸いです!