相关疑难解决方法(0)

在Serializable C#类上使用XmlArrayItem属性而不使用XmlArray

我想要XML格式如下:

<configuration><!-- Only one configuration node -->
  <logging>...</logging><!-- Only one logging node -->
  <credentials>...</credentials><!-- One or more credentials nodes -->
  <credentials>...</credentials>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个Configuration具有该[Serializable]属性的类.要序列化凭据节点,我有以下内容:

[XmlArray("configuration")]
[XmlArrayItem("credentials", typeof(CredentialsSection))]
public List<CredentialsSection> Credentials { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是,当我将其序列化为XML时,XML的格式如下:

<configuration>
  <logging>...</logging>
  <configuration><!-- Don't want credentials nodes nested in a second
                      configuration node -->
    <credentials>...</credentials>
    <credentials>...</credentials>
  </configuration>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如果我删除该[XmlArray("configuration")]行,我会得到以下内容:

<configuration>
  <logging>...</logging>
  <Credentials><!-- Don't want credentials nodes nested in Credentials node -->
    <credentials>...</credentials>
    <credentials>...</credentials>
  </Credentials>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如何<credentials>在单根节点中使用多个节点以我想要的方式对其进行序列化<configuration>?我想这样做而不必实现 …

c# xml xml-serialization serializable xml-deserialization

48
推荐指数
1
解决办法
4万
查看次数