序列化后,我应该在代码中更改什么以获得这种XML格式

本文关键字:格式 XML 什么 我应该 代码 序列化 | 更新日期: 2023-09-27 18:25:41

这是我的类:Language.cs(完整评论,这就是我将其作为链接发布的原因)我需要更改的目标代码:

[Serializable]
public struct Text
{
    private string _Key;
    private string _Value;
    [XmlAttribute]
    public string Key
    {
        get { return _Key; }
        set { _Key = value; }
    }
    [XmlAttribute]
    public string Value
    {
        get { return _Value; }
        set { _Value = value; }
    }
    public Text(string key, string value)
    {
        _Key = key;
        _Value = value;
    }
}

目前,当我使用Save()方法时,我会得到一个类似的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<Language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>LangName</Name>
  <Texts>
    <Text Key="Welcome" Value="Welcome {0}!" />
    <Text Key="YourAge" Value="Your age is {0} !" />
  </Texts>
</Language>

我正在找一个像一样的文件

<?xml version="1.0" encoding="utf-8"?>
<Language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>LangName<Name/>
  <Texts>
    <Text Key="Welcome">Welcome {0}!<Text/>
    <Text Key="YourAge">Your age is {0} !<Text/>
  </Texts>
</Language>

你知道在保存后,我应该在代码中更改什么以获得这种XML格式吗?

非常感谢:D

序列化后,我应该在代码中更改什么以获得这种XML格式

在序列化之前,请研究自定义/配置XmlSerializer。您很可能需要设置XmlAttributeOverrides,以将所需的属性设置为XmlText。

具体而言:

  • http://msdn.microsoft.com/en-us/library/bfaxz1a0.aspx
  • http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.aspx
  • http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmltext.aspx