0

コードの ObservableCollection を XML ファイルにシリアライズしようとしています。これを行うと、結果の XML は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfCode xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Code>
    <AccpacCode>ORWC</AccpacCode>
    <LAC>94199999999999999</LAC>
    <SCSCode>WC</SCSCode>
  </Code>
  <Code>
    <AccpacCode>AK9999</AccpacCode>
    <LAC>90299999999999999</LAC>
    <SCSCode>UI</SCSCode>
    <ParentEmployerAccpacCode>AKSUTA</ParentEmployerAccpacCode>
  </Code>
  <Code>
    <AccpacCode>AL0014</AccpacCode>
    <LAC>90107307000999999</LAC>
    <SCSCode>IT</SCSCode>
  </Code>
  <Code>
    <AccpacCode>IN0006</AccpacCode>
    <LAC>91817599999999999</LAC>
    <SCSCode>IT</SCSCode>
  </Code>

Codesの代わりにタグが必要であることを除けば、これで問題ありませんArrayOfCode。タグ名の指定方法を教えてください。

コードモデルは次のとおりです。

namespace SerializeObservableCollection.Model
{
    [Serializable()]
    public class Codes
    {
        public Codes() { }

        [XmlElement("Code")]
        public ObservableCollection<Code> CodeCollection { get; set; }

    }

    [Serializable()]
    public class Code
    {
        [XmlElement("AccpacCode")]
        public string AccpacCode { get; set; }

        [XmlElement("LAC")]
        public string LAC { get; set; }

        [XmlElement("SCSCode")]
        public string SCSCode { get; set; }

        [XmlElement("ParentEmployerAccpacCode")]
        public string ParentEmployerAccpacCode { get; set; }
    }
}

シリアル化を行うコードは次のとおりです。

private void SaveToXML()
{
    try
    {
        XmlSerializer _serializer = new XmlSerializer(typeof(ObservableCollection<Code>));
        using (StreamWriter _writer = new StreamWriter(@"LocalCodes.xml"))
        {
            _serializer.Serialize(_writer, CodeCollection);
        }
    }
    catch (Exception ex)
    {

    }
}
4

1 に答える 1