C#におけるデータ転送変換のXML
開発過程において、C/SまたはB/Sアーキテクチャにおいて、データ交換フォーマットの良好な定義は開発者間の協力をもたらすだけではない.
開発はより柔軟で、統合の過程でインタフェース間の衝突を減らすことができ、よく使われるデータ交換フォーマットは
XMLとjson、以下はC#でXMLを使用してデータ交換を行う例です.
Xml文字列をデータ・オブジェクトに変換するには、次の手順に従います.
これは完全に再利用可能なコードセグメントであり,XmlSerializerの使い方も理解される.
開発はより柔軟で、統合の過程でインタフェース間の衝突を減らすことができ、よく使われるデータ交換フォーマットは
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の使い方も理解される.