C# 将基于属性名的xml反序列化为C中我的类的属性#
我有下面描述的xml文件C# 将基于属性名的xml反序列化为C中我的类的属性#,c#,xml,xmlserializer,C#,Xml,Xmlserializer,我有下面描述的xml文件 <Root name="myRoot"> <Field name = "myField">"blabla</Field> <List name="data"> <Row name="data"> <Field name="Field1">sample</Field> <Field name="Field
<Root name="myRoot">
<Field name = "myField">"blabla</Field>
<List name="data">
<Row name="data">
<Field name="Field1">sample</Field>
<Field name="Field2">sample</Field>
</Row>
</List>
</Root>
我的问题是如何将属性名映射到“Row”类的属性?
顺便说一下,我能够基于标记(字段)映射到“Row”类的属性。
我的观点是如何使用额外的条件进行映射,即字段标记上的属性名的值
对不起我的英语
提前感谢。没有内置的xml序列化程序(特别是XmlSerializer
和DataContractSerializer
)允许您使用属性值映射到成员。属性的名称-确定(例如
)-但不是您的…
因此,您必须使用类似于XmlDocument
、XDocument
或XmlReader
的工具手动执行此操作。或者,可以通过xslt运行它,将其转换为XmlSerializer
可以处理的内容,即您可以(通过xslt)构造:
“布拉布拉
样品
样品
(这将特别涉及使用
)谷歌搜索xmldattribute
@I4V,在这里没有任何帮助注意:您在xml中列出的内容看起来很像“内部平台效应”"... xml已经可以表示根、字段和列表,包括名称。您已经在xml中巧妙地重新构建了xml的特性。这通常意味着你用错了。非常感谢你,马克。你的评论和回答很有帮助。实际上,我已经使用反射将XML类映射到实例(行)类,并将所有值复制到“行”类中的属性中。为什么我要问这个问题,因为我需要关于如何使用不同方法的建议,以便比较每种方法的性能。同样,你的评论和回答非常有用,干杯:)
public class Row
{
public string Field1
{
get;set;
}
public string Field2
{
get;set;
}
}
<myRoot>
<myField>"blabla</myField>
<data>
<data>
<Field1>sample</Field1>
<Field2>sample</Field2>
</data>
</data>
</myRoot>