rot*_*man 2 c# xml serialization
我有2个班:
public class LocalizationEntry
{
public List<TranslationPair> Translations
{
get;
set;
}
}
public class TranslationPair
{
public string Language
{
get;
set;
}
public string Translation
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用标准串行器获得这样的XML?
<LocalizationEntry>
<Translations>
<EN>apple<EN>
<PL>jab?ko<PL>
<DE>apfel<DE>
</Translations>
</LocalizationEntry>
Run Code Online (Sandbox Code Playgroud)
我正在考虑类似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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |