【问题标题】:Can Servicestack Deserialize XML without namespacesServicestack 可以在没有命名空间的情况下反序列化 XML
【发布时间】:2019-02-22 20:32:04
【问题描述】:

这两种方法我很熟悉:

var newDataSet = XmlSerializer.DeserializeFromString<NEWDATASET>(xmlDoc.OuterXml);
var newDataSet = xmlDoc.OuterXml.FromXml<NEWDATASET>();

但他们都给了我同样的错误:

DeserializeDataContract:错误转换类型:第 1 行错误 位置 40. 期望来自命名空间的元素“NEWDATASET” ''.. 遇到名为 'NEWDATASET' 的 'Element', 命名空间''。

我觉得只要元素名称与公共属性名称匹配,或者将公共属性的 DataMemberAttribute Name 参数设置为元素名称,我觉得应该有一种方法可以让它工作。

【问题讨论】:

    标签: c# xml serialization deserialization servicestack


    【解决方案1】:

    ServiceStack 没有自己的 XML 序列化器,它的 DataContractSerializer 使用 .NET 的 XML DataContract,它的 XmlSerializer 使用 .NET 的 XmlSerializer。因此,XML 有效负载需要从这些 BCL 实现中的任何一个进行反序列化。

    解析任意 XML 的另一种方法是使用 Xlinq 和 ServiceStack 的 XLinqExtensions,它们提供了对 UX 友好的帮助器来简化 XML 解析。

    以下是一些使用 Xlinq 和助手解析任意 XML 的示例:

    【讨论】:

      猜你喜欢
      • 2011-11-03
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      相关资源
      最近更新 更多