【发布时间】:2016-04-04 20:56:54
【问题描述】:
是否可以通过 xml 注释获取元素的(子)元素或元素自己的属性,而无需幻像类?
示例当前代码片段: XML:
<root>
...
<epno type="1">12</epno>
...
</root>
C# 类:
[XmlRoot("root")]
class Root {
...
[XmlElement("epno")]
public Epno epno;
...
}
class Epno { //"Phantom" class
[XmlAttribute("type")]
public int type;
[XmlText]
public int epno;
}
我想要的是删除那个 Epno 类并将这些道具移动到 Root 类中......
[XmlRoot("root")]
class Root {
...
[XmlElement("epno")]
[XmlAttribute("type")] // I need a solution for this...
public int type;
[XmlElement("epno")]
public int epno;
...
}
还有一个地方,加号在哪里,我想得到一个元素的属性,这是另一个元素……比我想得到元素的元素值。
这是一个 Xml 示例:
<root>
<rates>
<permanent votes="100">6.54</permanent>
<temprate votes="100">6.54</temprate>
</rates>
</root>
这里我想将这些值放入根类,但在这种情况下,至少需要 2 个类来解析它。
那么,有没有一种方法可以通过注释反序列化这些类,而无需这些幻像类,也无需编写我自己的 xml 解析器?
【问题讨论】:
-
对不起,“没有幻影类”是什么意思?
-
查看第二个代码段,我的意思是在基本上不需要创建的虚拟类下,因为它也可以包含与根/父类相同的信息,如果您将数据保存到数据库,您将不会t 为该数据创建一个新表,只需将其连接到您的“原始”数据。在第二个代码片段中,Epno 类是一个幻像,因为将两个数据放入一个新类是没有用的......
-
或者,我也可以这样说:我想从片段 2 创建代码片段 3,我需要反序列化的原始代码在片段 1 中。片段 4 是我的另一个数据需要反序列化,但这是第 2 级...
标签: c# xml annotations