【发布时间】:2012-09-10 09:35:26
【问题描述】:
我在下面有这个对象,我正在尝试正确标记它以便从 xml 反序列化。它正在使用 WCF。
[DataContract(Name="Task")]
public partial class Task
{
[DataMember]
public string prop1
{ get; set; }
[DataMember]
public ChildrenProps ChildProp1{ get; set; }
}
[DataContract]
public partial class ChildrenProps
{
[DataMember]
public ConfigurationSettings Prop1
{ get; set; }
[DataMember]
public ConfigurationSettings Prop2
{ get; set; }
}
[DataContract]
public partial class ConfigurationSettings
{
[DataMember]
public string Value
{ get; set; }
}
这是 XML。
<Task>
<prop1>aaaaa</prop1>
<ChildProp1>
<Prop1>bbbbbb</Prop1>
<Prop2>cccccc</Prop2>
</ChildProp1>
</Task>
我正在使用这种方法进行反序列化
public T Deserialization<T>()
{
var reader = new StringReader(configuration);
var serializer = new XmlSerializer(typeof(T));
var instance = (T)serializer.Deserialize(reader);
return instance;
}
它不起作用 对于子元素并在对象中返回 null 但对其他所有内容都有效。正确标记此内容的任何帮助都会有很大帮助。
【问题讨论】:
-
还有一个序列化器可以完成这种工作。它也是 WCF 默认的序列化器。但是现在我找不到那个类名。
-
WCF默认对数据合约使用DataContract序列化器,不需要手动序列化和反序列化
-
请发布
ChildrenProps类型定义。 -
抱歉 Denis 只是命名不正确,它总是以错误的名称出现在上面,请查看上方。
-
@Vignesh Natraj 对不起,你是什么意思?如何将 XML 放入对象中?
标签: c# xml wcf xml-parsing