私は動的に C# 型初期化子のようなものを構築しようとしています:
MyClass class = new MyClass { MyStringProperty= inputString };
特定の型を一度反映し、クラスの新しいインスタンスを作成して入力パラメーターに基づいてデータを設定するデリゲートを返すジェネリック メソッドを作成したいと考えています。メソッドのシグネチャは次のようになります。
Func<string,T> CreateFunc<T>();
結果の関数を呼び出すと、(たとえば) 入力文字列引数の値に対する String 型のすべてのパブリック プロパティを持つ 'T' の新しいインスタンスが作成されます。
したがって、「MyClass」に MyStringProperty のみがあると仮定すると、以下のコードは最初のコードと機能的に同等になります。
var func = CreateFunc<MyClass>();
func.Invoke(inputString);
私は System.Reflection および System.Linq.Expressions 名前空間にかなり精通しており、過去にこのような適度に複雑なことをいくつか行ったことがありますが、これには困惑しています。リフレクションを使用してプロパティを単純に反復するのではなく、コンパイルされたデリゲートを構築したいと考えています。
ありがとう!