何时使用数据合同以及何时在wcf中使用消息合同

时间:2016-12-23 19:58:03

标签: c# wcf

我见过人们使用实体然后用[DataContract]属性装饰他们的实体类

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

    [DataMember]
    public string FirstName { get; set; }

    [DataMember]
    public string LastName { get; set; }
}

查看消息合同部分

[MessageContract]
public class EmployeeDetails
{
    [MessageHeader]
    public string EmpID;
    [MessageBodyMember]
    public string Name;
    [MessageBodyMember]
    public string Designation;
    [MessageBodyMember]
    public int Salary;
    [MessageBodyMember]
    public string Location;
}

现在我的问题是为什么需要消息合同,因为我们只能通过数据合同完成工作。唯一的好处是通过消息合同,我们可以决定哪个属性将作为标题属性传递,哪个属性将作为主体属性传递。

告诉我为什么需要邮件合同?

何时需要邮件合同?

邮件合同有哪些优势?

消息合同和数据合同之间有什么区别?我们应该使用哪一个?

1 个答案:

答案 0 :(得分:0)

其实你已经自己回答了你的问题。

  

唯一的好处是通过消息合同我们可以决定哪个属性将作为标题属性传递,哪个属性将作为body属性传递。

这是事实。当您需要消息合同时,唯一的情况是您需要完全控制SOAP消息的结构。