C#におけるデータ転送変換のXML

1503 ワード

開発過程において、C/SまたはB/Sアーキテクチャにおいて、データ交換フォーマットの良好な定義は開発者間の協力をもたらすだけではない.
開発はより柔軟で、統合の過程でインタフェース間の衝突を減らすことができ、よく使われるデータ交換フォーマットは
XMLとjson、以下はC#でXMLを使用してデータ交換を行う例です.
public interface Action
{
}
[Serializable]
public class CollegeOfUniversity : Action
{
    public Dictionary<String, String> College;  
    public string ToXml()
    {
        XmlSerializer xs = new XmlSerializer(typeof(CollegeOfUniversity), new Type[] { typeof(Dictionary<string, string>) });
        using (MemoryStream stream = new MemoryStream())
        {
            xs.Serialize(stream, this);
            return Encoding.ASCII.GetString(stream.ToArray(), 0, (int)stream.Length);
        }
    }
}

Xml文字列をデータ・オブジェクトに変換するには、次の手順に従います.
public class MessageHandler
{
    public static Action Handle(string message)
    {
        Type type = null;
        var doc = new XmlDocument();

        if (message == null || message == string.Empty)
            return null;
        doc.LoadXml(message);
        type = Type.GetType("Model." + doc.ChildNodes[1].Name);
       // Console.WriteLine(type);
        XmlSerializer xs = new XmlSerializer(type,
            new Type[]
			{
				typeof(CollegeOfUniversity)
			});
        using (MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(message)))
        {
            return  (Action)xs.Deserialize(stream);
        }
    }
}

これは完全に再利用可能なコードセグメントであり,XmlSerializerの使い方も理解される.