C# DataContractSerializer缺少对象

C# DataContractSerializer缺少对象,c#,.net,wcf,datacontractserializer,C#,.net,Wcf,Datacontractserializer,我正在使用DataContractSerializer将xml反序列化到列表中 xml结构如下所示: <ArrayOfAttributes> <Attributes> <Type></Type> <Value></Value> <Name></Name> </Attributes> </ArrayOfAttributes> 当WCF服务在XML中返回多个Attributes元

我正在使用DataContractSerializer将xml反序列化到列表中

xml结构如下所示:

<ArrayOfAttributes>
<Attributes>
<Type></Type>
<Value></Value>
<Name></Name>
</Attributes>
</ArrayOfAttributes>
当WCF服务在XML中返回多个Attributes元素时,Name对象将成功填充,但如果只返回1个Attributes元素,Name的值将保持为null


有人知道我做错了什么吗?

根据粘贴的XML,似乎DataMember顺序是错误的

试一试

[数据成员(订单=0)] 类型 [数据成员(顺序=1)] 名称 [数据成员(顺序=2)] 价值观

另一个选择是

[数据成员] 类型 [数据成员] 名称 [数据成员] 价值观


尝试第二个,它将始终有效:)

根据粘贴的XML,似乎DataMember顺序是错误的

试一试

[数据成员(订单=0)] 类型 [数据成员(顺序=1)] 名称 [数据成员(顺序=2)] 价值观

另一个选择是

[数据成员] 类型 [数据成员] 名称 [数据成员] 价值观


试试第二个,它会一直起作用:)

删除了我的答案,因为它不再适用。我观察到的另一件事是,如果我删除订单标签,名称不会被反序列化。只显示类型和值。我正在为类型列表使用DataContractSerializer。您可以粘贴用于“反序列化xml”的代码吗?这里不清楚的是,您声明您正在使用datacontract序列化程序对xml进行反序列化,但是当WCF返回X个属性时,您声明您的问题正在发生。您是手动使用datacontractSerializer,还是让WCF为您执行此操作?请提供更多信息。删除我的答案,因为它不再适用。我观察到的另一件事是,如果我删除订单标签,名称不会反序列化。只显示类型和值。我正在为类型列表使用DataContractSerializer。您可以粘贴用于“反序列化xml”的代码吗?这里不清楚的是,您声明您正在使用datacontract序列化程序对xml进行反序列化,但是当WCF返回X个属性时,您声明您的问题正在发生。您是手动使用datacontractSerializer,还是让WCF为您执行此操作?请提供更多信息。
[DataMember(Order=0)]
Type
[DataMember(Order=1)]
Value
[DataMember(Order=2)]
Name