gpt4 book ai didi

c# - 将对象序列化为 XML 以获取命名为字段值的标签列表

转载 作者:数据小太阳 更新时间:2023-10-29 02:59:09 25 4
gpt4 key购买 nike

我有 2 个类:

public class LocalizationEntry
{
public List<TranslationPair> Translations
{
get;
set;
}
}

public class TranslationPair
{
public string Language
{
get;
set;
}

public string Translation
{
get;
set;
}
}

是否可以使用标准序列化程序获得这样的 XML?

<LocalizationEntry>
<Translations>
<EN>apple<EN>
<PL>jabłko<PL>
<DE>apfel<DE>
</Translations>
</LocalizationEntry>

我在考虑类似 XmlArrayItem(ElementName=this.Language) 属性的东西,但当然这种构造是非法的,除了该属性值无法在运行时确定。

感谢您的帮助。我当然可以使用其他结构,但我很好奇这是否可能。

最佳答案

自定义元素名称很痛苦;我会忘记这里的 XmlSerializer,因为您必须使用 IXmlSerializable,这是一件非常痛苦的事情。我会改用 XElement:

var source = new LocalizationEntry {
Translations = new List<TranslationPair> {
new TranslationPair {Language="EN", Translation="apple"},
new TranslationPair {Language="PL", Translation="jabłko"},
new TranslationPair {Language="DE", Translation="apfel"},
}
};

var el = new XElement("LocalizationEntry",
new XElement("Translations",
from pair in source.Translations
select new XElement(pair.Language, pair.Translation)));

var xml = el.ToString();

关于c# - 将对象序列化为 XML 以获取命名为字段值的标签列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com