Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将基于属性名的xml反序列化为C中我的类的属性#_C#_Xml_Xmlserializer - Fatal编程技术网

C# 将基于属性名的xml反序列化为C中我的类的属性#

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

我有下面描述的xml文件

<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>