「階層化された繰返し要素のXMLをデシリアライズする」
http://zero-config.com/dotnet/xmlserializer002.html
この入門サイト(?)の内容を改造します。
<user>と同じ階層に要素を追加してみます("admin"と名付けました)。
できたXML <?xml version="1.0" encoding="utf-8"?> <system-config> <system-name>XXXXX</system-name> <version>1.1</version> <users> <user id="0001"> <email>foo@example.com</email> <expired>2015/12/31</expired> </user> <user id="0002"> <email>bar@example.com</email> <expired>2015/09/30</expired> </user> <admin id="000a"> <email>foo@example.com</email> <expired>2015/12/31</expired> </admin> <admin id="000b"> <email>bar@example.com</email> <expired>2015/09/30</expired> </admin> </users> </system-config>
こうした場合でのクラス設計がわかりません。
"public class SystemConfig"の書き方がミソだとは思うのですが、色々試しても処理が通りません。
通らない例 /// <summary> /// システム設定 /// </summary> [System.Xml.Serialization.XmlRoot("system-config")] public class SystemConfig { /// <summary> /// システム名 /// </summary> [System.Xml.Serialization.XmlElement("system-name")] public string SystemName {get; set;} /// <summary> /// バージョン /// </summary> [System.Xml.Serialization.XmlElement("version")] public string Version { get; set; } /// <summary> /// ユーザ情報 /// </summary> [System.Xml.Serialization.XmlArray("users")] [System.Xml.Serialization.XmlArrayItem("user")] public List<Sample.Model.User> Users { get; set; } ///アドミニ情報 [System.Xml.Serialization.XmlArray("users")] [System.Xml.Serialization.XmlArrayItem("admin")] public List<Sample.Model.Admin> Admins{ get; set; } } ・ ・ ・ UserクラスをコピペしたAdminクラスを宣言
丸投げ気味な質問になってしまってますが、よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/13 02:06
2016/09/14 20:20
2016/09/15 08:20