【发布时间】:2015-09-16 15:16:02
【问题描述】:
我正在编写一个位于客户端和目标之间的中间人 WCF SOAP 服务。目标端点被拆分为具有相同操作签名的两个服务,中继服务的工作是识别客户端数据需要发送到其中的哪一个,然后发送。
因此,鉴于此,我正在尝试在我的 relay wcf 服务中重用 target 接口,以便 client 可以连接到我的继电器没有变化。在测试中,尝试调用对目标的调用时出现以下错误:
尝试序列化参数时出错 流程文档。内部异常消息 是带有数据合同名称的“输入文档”类型 'InputDoc:http://schemas.datacontract.org/2004/07/RelayService' 是 没想到。考虑使用 DataContractResolver 或添加任何类型 在已知类型列表中静态未知 - 例如,通过 使用 KnownTypeAttribute 属性或将它们添加到列表中 传递给 DataContractSerializer 的已知类型。请参见 InnerException 了解更多详情。
我怀疑问题在于我编写了一个糟糕的界面。我的接口包含 InputDoc 类的数据协定,它继承自目标服务的 InputDoc 类。有人可以解释一下我如何能够成功地将这个对象传递给目标服务吗?
我的界面:
<ServiceContract()>
Public Interface IRelayService
<OperationContract()>
Function processDoc(ByVal inputDoc As InputDoc) As ResultResposne
End Interface
<DataContract(), _
System.Xml.Serialization.XmlTypeAttribute([TypeName]:="InputDocument", [Namespace]:="http://test.net/")>
Partial Public Class InputDoc
Inherits TargetService.InputDoc
End Class
【问题讨论】:
标签: .net vb.net web-services wcf soap