Code of deserialization
Serialization Example
When we do not want xml declaration / omit xml declaration
OmitXmlDeclaration should be set to True while initializing XmlWriter. Sample :-
public string SerializeToXML(T typeToSerialize)
{
using (var sw = new StringWriter())
{
using (var xw = XmlWriter.Create(sw, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
var serializer = new XmlSerializer(typeof(T));
// below code will omit the namespace in serialized xml
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
serializer.Serialize(xw, typeToSerialize, ns, encodingStyle: string.Empty);
}
return sw.ToString();
}
}
CarInfoCollection carInfoCollection = null;
using (StringReader strReader = new StringReader(this.textBox.Text.Trim()))
{
using (XmlTextReader reader = new XmlTextReader(strReader))
{
XmlSerializer
serializer = new XmlSerializer(typeof(CarInfoCollection));
carInfoCollection = (CarInfoCollection)serializer.Deserialize(reader);
reader.Close();
}
}
MessageBox.Show(carInfoCollection.CarInfoFields.Count().ToString());
----------------------------------------------------------------------------------------
Type classes
[System.SerializableAttribute()]
[XmlRootAttribute("CarInfoFields", Namespace = "urn:carinfo-schema:CarInfoCollection")]
public class CarInfoCollection
{
[XmlElement("CarInfo")]
public CarInfo[] CarInfoFields { get; set; }
}
[System.SerializableAttribute()]
public class CarInfo
{
[XmlAttribute]
public String Name { get; set; }
[XmlAttribute]
public CarUsage Usage { get; set; }
[XmlArray(ElementName = "Features", IsNullable = true)]
[XmlArrayItem(ElementName = "Feature", IsNullable = true)]
public List<string> Features { get; set; }
}
----------------------------------------------------------------------------------------
Xml string entered in textbox, examples
When we do not want xml declaration / omit xml declaration
OmitXmlDeclaration should be set to True while initializing XmlWriter. Sample :-
public string SerializeToXML
{
using (var sw = new StringWriter())
{
using (var xw = XmlWriter.Create(sw, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
var serializer = new XmlSerializer(typeof(T));
// below code will omit the namespace in serialized xml
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
serializer.Serialize(xw, typeToSerialize, ns, encodingStyle: string.Empty);
}
return sw.ToString();
}
}