将 List<Func<T>> 序列化

6

我有一个类,其中包含一个List<Func<T>>。这个类是可序列化的,并且将通过WCF进行传输。现在,我遇到了关于包含的List<Func<T>>的问题。我该怎么做才能使这个列表也能被序列化?


你遇到了什么问题? - Abe Miessler
列表的目的是什么?函数是否需要传递,或者另一端的对象可以有一个空列表? - Random832
Func<T>不可序列化 - 怎么办?你必须序列化代码,这可能会产生任何影响,甚至是操作系统调用。 - James Gaunt
1个回答

18

你期望如何将 Func<T> 进行序列化?它是一个指向函数的指针 - 这样的东西无法进行序列化。


为什么不呢?函数指针就像任何其他数据一样。例如,在AppDomains之间传递函数引用时,它非常有用。 - staafl
问题是为什么你会“期望”它可序列化?当然,在某些情况下可能是可能的,但为什么要期望有一般的能力来序列化它。例如,如果将其传递给Java,则此类事物将没有用处。为什么有必要将其序列化为XML,并以大多数用户可以理解的方式呈现? - John Saunders
4
抱歉,也许我没有表达清楚。显然,通过服务端点传递函数指针是毫无意义的。但是,委托的二进制序列化是被支持的,而且人们可能会期望它被支持,因为a) 函数指针是数据,b) 它对于跨应用域工作、序列化带有事件的类以及其他情况可能很有用。 - staafl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接