1
を委任するパラメータを渡す私は現在、この持っている:私は代わりに、関数CreateListに変数を渡したい機能
instance = new Class1<Type1>(
"param1",
() =>
new ViewDataDictionary<Type2>(
new Class2
{
Prop1= CreateList(new List<long> { 234 }),
Prop2= CreateList(new long[] { 234 })
}));
を。この
long p1 = 123;
instance = new Class1<Type1>(
"param1",
() =>
new ViewDataDictionary<Type2>(
new Class2
{
Prop1= CreateList(new List<long> { p1}),
Prop2= CreateList(new long[] { p1})
}));
のようなものしかし、それは私が上記をしよう 場合は直列化エラーが発生します。すべてのクラス はシリアル化可能とマークされています。
私はジェネリックデリゲートとしてこれを作りたいと思っています。デリゲートが実行する関数が存在する可能性があります。デリゲートは、パラメタを持たないか、より多くのパラメタを持つことができます。私はオブジェクトの配列を持つことを考えていた。しかし、より良い方法がありますか? – user99322
さて、クラスをシリアライズ可能にするために、ラムダ式はローカル変数を取り込んではいけません。だから、すべてのケースをカバーする唯一の解決策は、非常に便利ではないにしても、デリゲートへのパラメータとしてオブジェクトの配列(あるいは多分辞書)を使うことです –