无法在WCF中转换为相同类型

本文关键字:同类型 转换 WCF | 更新日期: 2023-09-27 18:09:17

我正在为一个web服务构建一个测试存根,使用svcutil实现从生产web服务检索到的接口。当在存根上调用方法时,我得到异常;

Object of type 
'Sbsys.Services.HostService.DokumentBoks.DKALWSAfsendService.MaterialeType[]' 
cannot be converted to type
'Sbsys.Services.HostService.DokumentBoks.DKALWSAfsendService.MaterialeType[]'.
"Sbsys.Services.HostService

。documentbooks '是消费客户端的名称空间,'DKALWSAfsendService'是包含为服务生成的代理类的名称空间。

有什么想法吗?

附加信息:当使用生产服务时,一切都按预期工作

无法在WCF中转换为相同类型

已解决:我怀疑这可能是一个版本问题,并将我的服务引用移动到一个孤立的项目中,不包含任何其他内容。从消费客户端和web服务存根中引用了这一点,希望这将解决多次构建或其他任何问题。转眼间。问题消失了。

prod中的wsdl/contract是否与您调用的wsdl/contract不同?如果代理是针对prod生成的,并在具有不同契约的服务的另一个实例上使用,您可能会收到那种奇怪的消息。

有时会发生此错误,因为项目属性中的Generate Serializable Assembly选项(特别是如果您使用sgen使用每个生成的序列化程序集)。尝试在"项目属性"中将此选项设置为"关闭",看看是否有效。关闭此选项后,您将需要使用sgen按顺序生成程序集。在这个问答中有一些很好的讨论和背景线索。