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
            }
        }
    }
}