WCF DataContracts and underlying data structures

后端 未结 4 689
无人共我
无人共我 2021-02-02 18:04

I am wondering what makes sense in relation to what objects to expose through a WCF service - should I add WCF Serialization specifications to my business entities or should I i

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-02-02 18:30

    Just to add to the above answers: The object that the webservice exposes is called the Data Transfer Object (DTO). Having a DTO to map your Business Entity object (BEO) is good because of the separation it provides between your webservice and the actual implementation/logic that lies behind the web-service.

    Finally, here is how you can decorate the DTO so that when it is exposed by the WSDL the names reflect the actual objects it represent (instead of objectNameDTO or something ugly like that).

    //Business Entity
    class Person
    {
       public string Name{ get; set; }
       public int Age{ get; set; }
    }
    
    
    //Data transfer object
    [DataContract(Name="Person")] //<-- this is what makes the WSDL look nice and clean
    class PersonDTO
    {
       [DataMember(Name = "Name", Order = 0)]
       public string Name{ get; set; }
       [DataMember(Name = "Age", Order = 1)]
       public int Age{ get; set; }
    }
    

提交回复
热议问题