【发布时间】:2014-12-11 05:14:57
【问题描述】:
我在使用 WCF 和 Entity Framework 4.1 POCO 对象(使用 T4 模板生成)时遇到问题。我的基本问题是,当从我的客户端向服务发送 POCO 对象时,WCF 将 ICollection 类型的成员变量反序列化为固定大小的数组。
在客户端,我可以告诉 Visual Studio 使用 IList 而不是 T[] - 但我在服务器端看不到任何类似的选项。
这会导致很多问题,例如将这些对象持久化回数据库。
有没有办法告诉 WCF 将 ICollection(或任何数组)反序列化为什么对象类型?
【问题讨论】:
-
如果你的成员变量是
ICollection类型导致no end of problems那么你为什么将它定义为无法处理的东西?即为什么不将它定义为IList,如果那是你的坚持者所期望的。也许详细说明导致下游的问题 -
因为 POCO T4 模板指定了 ICollection - 我没有手动编写 POCO。作为一项临时措施,我修改了 T4 模板以创建 HashSet 代替它工作正常,但在我看来,它们应该是一种在反序列化指定的泛型/接口类型时指定要使用的具体类型的方法。
标签: wcf serialization entity-framework-4.1