Original: http://blog.csdn.net/otong/article/details/7894059
Serialize or deserialize into a string:
Method One:
Serialization:
[CSharp]View PlainCopy
- Public static string xmlserialize<t> (T entity)
- {
- StringBuilder buffer = new StringBuilder ();
- XmlSerializer serializer = new XmlSerializer (typeof (T));
- using (TextWriter writer = new StringWriter (buffer))
- {
- Serializer. Serialize (writer, entity);
- }
- return buffer. ToString ();
- }
Deserialization:
[CSharp]View PlainCopy
- Public static T dexmlserialize<t> (string xmlstring)
- {
- T cloneobject = default (t);
- StringBuilder buffer = new StringBuilder ();
- Buffer. Append (xmlstring);
- XmlSerializer serializer = new XmlSerializer (typeof (T));
- using (TextReader reader = new StringReader (buffer. ToString ()))
- {
- Object obj = serializer. Deserialize (reader);
- Cloneobject = (T) obj;
- }
- return cloneobject;
- }
Method Two:
[CSharp]View PlainCopy
- <summary>
- /// object serialized into XML String
- // </summary>
- public static string xmlserialize<t> (T obj)
- {
- string xmlstring = string. Empty;
- XmlSerializer XmlSerializer = new XmlSerializer (typeof (T));
- using (MemoryStream ms = New MemoryStream ())
- {
- Xmlserializer.serialize (MS, obj);
- XMLString = Encoding.UTF8.GetString (ms. ToArray ());
- }
- return xmlstring;
- }
- // <summary>
- /// XML String deserialized into an object
- // </summary>
- public static T xmldeserialize<t> (string xmlstring)
- {
- T t = default (t);
- XmlSerializer XmlSerializer = new XmlSerializer (typeof (T));
- using (Stream xmlstream = new MemoryStream (Encoding.UTF8.GetBytes (xmlstring)))
- {
- using (XmlReader XmlReader = Xmlreader.create (xmlstream))
- {
- Object obj = xmlserializer.deserialize (xmlReader);
- t = (t) obj;
- }
- }
- return t;
- }
If you want to serialize to a file, you can use FileStream.
Such as:
String strfile = @ "C:/book.xml";
using (FileStream fs = new FileStream (strfile, FileMode.Create))
{
XmlSerializer formatter = new XmlSerializer (typeof (T));
Formatter. Serialize (FS, entity);
}
Attached: In fact, can also be directly used Sringwriter
StringBuilder sb = new StringBuilder ();
System.IO.StringWriter writer = new System.IO.StringWriter (SB);
XmlSerializer formatter = new XmlSerializer (typeof (T));
Formatter. Serialize (writer,entity);
A serializable C # object, how to turn it into an XML-formatted file or string "Go"