FluepkeSchaeng FluepkeSchaeng - 4 months ago 40
C# Question

Convert an object to an XML string

I have got a class named

WebserviceType
I got from the tool xsd.exe from an XSD file.

Now I want to deserialize an instance of an
WebServiceType
object to a string.
How can I do this?

The
MethodCheckType
object has as params a
WebServiceType
array.

My first try was like I serialized it: with a
XmlSerializer
and a
StringWriter
(while serializing I used a
StringReader
).

This is the method in which I serialize the
WebServiceType
object:

XmlSerializer serializer = new XmlSerializer(typeof(MethodCheckType));
MethodCheckType output = null;
StringReader reader = null;

// catch global exception, logg it and throw it
try
{
reader = new StringReader(path);
output = (MethodCheckType)serializer.Deserialize(reader);
}
catch (Exception)
{
throw;
}
finally
{
reader.Dispose();
}

return output.WebService;





Edit:

Maybe I could say it in different words: I have got an instance of this
MethodCheckType
object an on the other hand I have got the XML document from which I serialized this object. Now I want to convert this instance into a XML document in form of a string. After this I have to proof if both strings (of XML documents) are the same. This I have to do, because I make unit tests of the first method in which I read an XML document into a
StringReader
and serialize it into a
MethodCheckType
object.

Answer

Here are conversion method for both ways. this = instance of your class

public string ToXML()
    {
        var stringwriter = new System.IO.StringWriter();
        var serializer = new XmlSerializer(this.GetType());
        serializer.Serialize(stringwriter, this);
        return stringwriter.ToString();
    }

 public static YourClass LoadFromXMLString(string xmlText)
    {
        var stringReader = new System.IO.StringReader(xmlText);
        var serializer = new XmlSerializer(typeof(YourClass ));
        return serializer.Deserialize(stringReader) as YourClass ;
    }