【发布时间】:2010-09-01 18:08:52
【问题描述】:
这很好用:
Func<string, string> func1 = s => s + "func";
ViewState["function"] = func1;
但是,这不是:
Func<string, string> func1 = s => s + "func";
Func<string, string> func2 = s => func1(s);
ViewState["function"] = func2;
它会抛出运行时序列化异常:Type 'MyProjectName._Default+<>c__DisplayClass3' in Assembly 'MyProjectName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
现在,这次我可以解决这个问题,但我想了解为什么会发生这种情况,以便将来如果我别无选择,只能在序列化之前组合函数,我会有一个解决方案。
【问题讨论】:
-
将 Func 序列化到视图状态?对不起,但这只是尖叫糟糕的设计,我不会推荐它。您能否描述您尝试实现的功能,也许有人可以提出更好的方法。
标签: c# serialization delegates function-composition