Servicestack 可以在没有命名空间的情况下反序列化 XML
Can Servicestack Deserialize XML without namespaces
我熟悉这两种方法:
var newDataSet = XmlSerializer.DeserializeFromString<NEWDATASET>(xmlDoc.OuterXml);
var newDataSet = xmlDoc.OuterXml.FromXml<NEWDATASET>();
但他们都给我同样的错误:
DeserializeDataContract: Error converting type: Error in line 1
position 40. Expecting element 'NEWDATASET' from namespace
''.. Encountered 'Element' with name 'NEWDATASET',
namespace ''.
我觉得只要元素名称与 public 属性 名称或 DataMemberAttribute
public 属性 已设置为元素名称。
ServiceStack 没有它自己的 XML 序列化器,它 DataContractSerializer
使用 .NET 的 XML DataContract 而它的 XmlSerializer
使用 .NET 的 XmlSerializer。因此,XML 有效载荷需要从这些 BCL 实现中的任何一个中反序列化。
另一种解析任意 XML 的方法是使用 XLinq 和 ServiceStack 的 XLinqExtensions,它们提供 UX 友好的帮助程序来简化 XML 解析。
以下是使用 XLinq 和助手解析任意 XML 的一些示例:
我熟悉这两种方法:
var newDataSet = XmlSerializer.DeserializeFromString<NEWDATASET>(xmlDoc.OuterXml);
var newDataSet = xmlDoc.OuterXml.FromXml<NEWDATASET>();
但他们都给我同样的错误:
DeserializeDataContract: Error converting type: Error in line 1 position 40. Expecting element 'NEWDATASET' from namespace ''.. Encountered 'Element' with name 'NEWDATASET', namespace ''.
我觉得只要元素名称与 public 属性 名称或 DataMemberAttribute
public 属性 已设置为元素名称。
ServiceStack 没有它自己的 XML 序列化器,它 DataContractSerializer
使用 .NET 的 XML DataContract 而它的 XmlSerializer
使用 .NET 的 XmlSerializer。因此,XML 有效载荷需要从这些 BCL 实现中的任何一个中反序列化。
另一种解析任意 XML 的方法是使用 XLinq 和 ServiceStack 的 XLinqExtensions,它们提供 UX 友好的帮助程序来简化 XML 解析。
以下是使用 XLinq 和助手解析任意 XML 的一些示例: