Search code examples
c#serializationdatacontractserializerxmlserializer

Data Contract deserialization issue with char - C#


my Code reference

var sample = DataContractDeserializeObject<MySample>(
                        "<MySample xmlns=\"http://schemas.datacontract.org/2004/07/Sample\"><Charecter>'D'</Charecter></MySample>");

When i run this code. i get this message "There was an error deserializing the object of type MySample. Content cannot be converted to the type Int. Line 1, position 129."

My deserialization code

 public static T DataContractDeserializeObject<T>(string objectToDeserialize)
        {
            using (XmlReader reader = XmlReader.Create(new StringReader(objectToDeserialize)))
            {
                var serializer =
                    new DataContractSerializer(typeof(T));
                return (T)serializer.ReadObject(reader);
            }
        }

My dataContract

[DataContract]
    public class MySample
    {
        [DataMember]
        public char Charecter { get; set; }
    }

how a char can be deserialized. Thanks.


Solution

  • I vaguely remember something about chars being serialized into their ascii representation for some reason. Don't try D, try 104.