Sometimes the string that serializes itself is sent to another interface, but it is found that the object of the receiving end is different from the property that the object is built, and when you do not want to modify the property name of the object, what should I do?
Very simple, is to give their own attributes to add a logo on the line, the specific look at the code:
1 [DataContract]2 Public classSampleClass3 {4[DataMember (Name ="Studentname")]5 Public stringName {Get;Set; }6[DataMember (Name ="Studentage")]7 PublicInt32 Age {Get;Set; }8[DataMember (Name ="studentaddress")]9 Public stringAddress {Get;Set; }Ten One Public Override stringToString () A { - using(MemoryStream Menorystream =NewMemoryStream ()) - { theDataContractJsonSerializer serializer =NewDataContractJsonSerializer (typeof(SampleClass)); -Serializer. WriteObject (Menorystream, This); - returnEncoding.UTF8.GetString (Menorystream.toarray ()); - } + } -}
After specifying the data contract through DataContract, you can add the DataMember attribute to the property that needs to be serialized, and pass the name parameter to modify the property names, order sort ... It's not easy, just try it yourself.
Note If the DataContract attribute is added, if the attribute is not added DataMember, the property will not be serialized
C # serialization Modify element name