Data Contract Serialization and De-Serialization - WCF Service Tutorial

Serialization is the process of converting an object to transferable data format. By default WCF uses DataContractSerializer. And vice-versa process is called De-Serialization.
   
 public class Product
    {
        public int  ProductID
        {
            get;set;
        }

        public string ProductName
        {
            get;set;
        }

        public string ProductSeller
        {
            get;set;
        }

        public decimal ProductCost
        {
            get;set;
        }

    }


Browse the service and open WSDL file.
Notice a namespace containing datacontract
Open the URL highlighted below.


You may notice the details that I added in Product class.


After adding Serializable attribute:

 [Serializable]
    public class Product
    { }

Now you may notice the change in xml file. Serializable attribute serialize all private properties.

Now if you want a control over serialization. Means you don't want all data to send to client only few of the  you want to exchange.
Use DataContract and DataMember attribute


[DataContract]
    public class Product
    {
        [DataMember]
        public int  ProductID
        {
            get;set;
        }

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

        public string ProductSeller
        {
            get;set;
        }

        public decimal ProductCost
        {
            get;set;
        }
    }


In below code, i have added DataMemeber attribute with ProductID and ProductName
Let's see the WSDL file.

You may notice only ProductID and ProductName is showing below why because I have used DataMember attribute with these two.


Summary:
  • If we use Serialize attribute then we will not have any control over fields. All fields will be serialize.
  • If we use DataContract attribute then we can control the fields by adding DataMember attribute if we want to serialize else with no attribute.

Comments

Popular

SharePoint Interview Questions and Answers

Calling ASP.Net WebMethod using jQuery AJAX

What is Cloud Computing - A guide for beginners

How to Crop and Upload image using JQuery