using System.Collections.Generic;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.Compression;
[XmlEnum(Name = "Integer")]
[XmlEnum(Name = "Decimal")]
public string name { set; get; }
public Res_Type type { get; set; }
public static void Test()
Ressource res = new Ressource();
res.name = "ressource_name";
res.type = Res_Type.Integer;
var fileName = @"test.xml";
XmlSerializer serializer = new XmlSerializer(res.GetType());
using (StreamWriter writer = new StreamWriter(fileName))
serializer.Serialize(writer, res);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Ressource));
using (var reader = new StreamReader(fileName))
res = (Ressource)xmlSerializer.Deserialize(reader);
Console.WriteLine(File.ReadAllText(fileName));
Assert.IsTrue(res.type == Res_Type.Integer && res.name == "ressource_name");
public static class XmlSerializationHelper
public static T LoadFromXml<T>(this string xmlString, XmlSerializer serial = null)
serial = serial ?? new XmlSerializer(typeof(T));
using (var reader = new StringReader(xmlString))
return (T)serial.Deserialize(reader);
public static string GetXml<T>(this T obj, bool omitStandardNamespaces)
return obj.GetXml(null, omitStandardNamespaces);
public static string GetXml<T>(this T obj, XmlSerializer serializer = null, bool omitStandardNamespaces = false)
XmlSerializerNamespaces ns = null;
if (omitStandardNamespaces)
ns = new XmlSerializerNamespaces();
using (var textWriter = new StringWriter())
var settings = new XmlWriterSettings() { Indent = true };
using (var xmlWriter = XmlWriter.Create(textWriter, settings))
(serializer ?? new XmlSerializer(obj.GetType())).Serialize(xmlWriter, obj, ns);
return textWriter.ToString();
public static void Main()
Console.WriteLine("Roslyn 2.0 Compiler; Environment version: " + Environment.Version);
Console.WriteLine("Uncaught exception: ");