C# XMLのノードを読み込んだ時IdだけがNullになってしまう
XMLのUsersノード内をforeachしてIdとKeyとAddressを読み込むようにしたいのですが、IdだけNullになってしまい読み込めません。
どうしたらIdも読めるようにできるのかご教示いただけたらと思います
Idが読めない以外は一応動いてるのですが、独学で悪戦苦闘しながら組んでるので、おかしな部分もあるかもしれません。
ダメ出しやアドバイスをよろしくお願いいたします。
<AppSettings>
<FileFolder>C:\</FileFolder>
<SKey>0</SKey>
<Users>
<User Id="User0001">
<Key></Key>
<Address>D:\C#作成物\顔マーク_フリー素材\img038.png</Address>
</User>
<User Id="User0002">
<Key>2</Key>
<Address />
</User>
<User Id="User0003">
<Key>3</Key>
<Address />
</User>
</Users>
</AppSettings>
[Serializable()]
public class AppSettings
{
public string FileFolder { get; set; }
public byte SKey { get; set; } // ラベルの配列番号
// ユーザ情報
public List<User> Users { get; set; }
public class User
{
public string Id { get; set; } // ID
public string Key { get; set; } // ユーザ名
public string Address { get; set; } // ユーザ画像アドレス
}
//Settingsクラスのインスタンス
[NonSerialized()]
private static AppSettings _instance;
[System.Xml.Serialization.XmlIgnore]
public static AppSettings Instance
{
get
{
//_instanceがnullのときは、新しくインスタンスを作成する
if (_instance == null)
_instance = new AppSettings();
return _instance;
}
set { _instance = value; }
}
}
private void MainForm_Load(object sender, EventArgs e)
{
//--中略--
foreach (AppSettings.User userLabel in AppSettings.Instance.Users) //保存ユーザラベルの読込
{
if (userLabel.Key != "")
{
UserList.Items.Add(userLabel.Key);
if (UCount == KeyNum) UserName.Text = userLabel.Key; //保存されてるUserIdのKey
}
else
{
UserList.Items.Add(userLabel.Id);
if (UCount == KeyNum)
{
UserName.Text = userLabel.Id;
UserPicture.BackgroundImage = Image.FromFile(userLabel.Address); //保存されてるUserIdのAddress
}
}
}
}