C# WCF中数据契约的动态映射

C# WCF中数据契约的动态映射,c#,asp.net,wcf,asp.net-web-api,wcf-binding,C#,Asp.net,Wcf,Asp.net Web Api,Wcf Binding,在将数据协定值传递给WCF服务而不添加服务引用时,我遇到了一些问题 WSHttpBinding binding = new WSHttpBinding(); EndpointAddress adress = new EndpointAddress ("http://localhost:8734/BankVerification.svc"); ChannelFactory<IBankVerification> factory = new ChannelFactory<IBan

在将数据协定值传递给WCF服务而不添加服务引用时,我遇到了一些问题

WSHttpBinding binding = new WSHttpBinding();

EndpointAddress adress = new EndpointAddress
("http://localhost:8734/BankVerification.svc");

ChannelFactory<IBankVerification> factory = new ChannelFactory<IBankVerification>(binding, adress);

IBankVerification channel = factory.CreateChannel();

var response = await channel.CallBankVerificationSoapService(message);
WSHttpBinding=newwshttpbinding();
EndpointAddress地址=新的EndpointAddress
("http://localhost:8734/BankVerification.svc");
ChannelFactory=新的ChannelFactory(绑定,地址);
IBankVerification通道=工厂.CreateChannel();
var响应=等待通道。CallBankVerificationSoapService(消息);
这里

  • CallBankVerificationSoapService
    是我服务中的方法
  • IBankVerification
    是服务合同名称
  • 如果我不向我的服务传递任何参数,一切都很好。我可以打电话给服务部

    但是当我调用
    频道时。CallBankVerificationSoapService(消息)

    我在“message”对象中有属性值,但它并没有到达我调用的WCF服务。接收对象值在此处变为空。 我已经在所有需要的位置添加了[DataContract]、[DataMember]属性


    我是否遗漏了什么…?

    客户端中的消息对象实例是否与服务中的消息对象位于同一命名空间中?你能发布消息对象的代码吗?不,我有一个服务库项目,我正在从那里调用。但我已经签订了一些中间服务合同,指出了原始WCF服务。这很可能是问题所在。如果您在服务中定义了
    MyService.SomeObject
    ,然后在客户端中定义了
    MyClient.SomeObject
    ,即使代码完全相同,它们也会因为名称空间的不同而被视为不同的对象。如果您更改了客户端和服务之间的代码,那么它肯定不会工作。因此,假设流类似于WebAPI-->类库项目1-->类库项目2-->调用某个SOAP服务。如果我们想用我提到的方法从classlibproject2调用服务,那么我们如何将对象保持在相同的名称空间中。将对象放在一个单独的程序集中,并与需要它的项目共享该程序集。