【发布时间】:2013-07-15 11:03:31
【问题描述】:
我有一个 wcf 服务,它有 3 个方法,获取项目列表、添加项目和获取单个项目。
从基类继承的可能有 4 种类型。 该服务使用每个派生类的 ServiceKnownType 进行修饰。
当我使用服务并且不选择重新使用程序集并引用 pocos 时,getlist 会按预期工作。当我重新使用程序集时,列表会引发序列化异常。
查看 wcf 客户端生成的 reference.cs 文件,我可以看到 KnownTypeAttribute 是在已生成的基类上创建的。在我重用基类的项目中,它用 ServiceKnownTypeAttribute 修饰方法。
因此,在调用 web 方法以返回列表时,我得到以下信息... 反序列化程序不知道映射到此名称的任何类型。考虑使用 DataContractResolver 或将与“TheChildObject”对应的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将其添加到传递给 DataContractSerializer 的已知类型列表中。
有没有办法解决这个问题?应该很常见吧?
【问题讨论】:
标签: c# asp.net-mvc wcf