解析对自定义对象的WCF响应

时间:2017-01-10 11:26:07

标签: c# wcf

请参阅以下代码:

.blurb_title {
    align-items: center;
    display: flex;
    vertical-align: middle;
}

我得到的编译时错误是:"无法隐式转换类型' app.ServiceReference1.Person'到' WcfService1.Person'。我理解这个错误的原因。服务器上有一个Person对象,客户端上有一个person对象,它们位于不同的名称空间中。

你如何解决这个问题。我不能要求WCF服务器开发人员向我发送Person类。

我正在为WCF Web服务寻找类似的东西:JSON not parsed into custom object

我不明白为什么框架会破坏WCF Web服务返回的XML。 WCF的重点在于它可以互操作。

2 个答案:

答案 0 :(得分:1)

如果所有对象属性的名称相同,则可以使用AutoMapper将值复制到本地对象,或者只是手动执行:

public Form1()
{
    ServiceReference1.Service1Client s1 = new ServiceReference1.Service1Client();
    var dto = s1.GetPerson();
    var p1 = new Person()
    {
        x = dto.x,
        y = dto.y,
        z = dto.z
    };
}

答案 1 :(得分:0)

如果服务是内部提供的,那么提供商也应该为您提供数据合同,至少在dll中。

否则,您可以通过Visual studio Service Referance Generator工具创建服务参考,它将为您创建正确的数据合同。

如果您正在编写自己的服务,请确保您已创建具有必要属性的dto对象。

[DataContract]
public class Person
{
    [DataMember]
    public int SampleField { get; set; }
}