1
目前,我有這樣的:參數傳遞到委託功能
instance = new Class1<Type1>(
"param1",
() =>
new ViewDataDictionary<Type2>(
new Class2
{
Prop1= CreateList(new List<long> { 234 }),
Prop2= CreateList(new long[] { 234 })
}));
我想通過在功能CreateList一個變量來代替。事情是這樣的
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 2009-08-31 13:00:20
那麼,爲了保持類可序列化,你的lambda表達式不能捕獲任何局部變量。所以我看到的唯一解決方案將覆蓋所有情況,即使它不是很方便,也可以使用一組對象(或者一個字典)作爲委託的參數 – 2009-08-31 13:35:31