【问题标题】:.Net Core 2.2 XML Serialization/Deserialization.Net Core 2.2 XML 序列化/反序列化
【发布时间】:2019-07-23 12:40:23
【问题描述】:

我无法在 .Net Core 2.2 中序列化/反序列化 XML。

我收到以下异常:System.TypeLoadException: 'Could not load type 'System.ServiceModel.Dispatcher.XPathMessageFilter' from assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'。 '

当然,到目前为止,我已经用 Google 搜索过,但无济于事。

我已添加 System.ServiceModel.Primitives NuGet 包,但该包中不包含 XPathMessageFilter 类型。有人成功解决了这个问题吗?

【问题讨论】:

  • XPathMessageFilter 属于“尚未有人花时间和精力移植的高级东西,因为它相对未被充分利用”。这也可能不会成为 .NET Core 3 的一部分。您可以在 Core 中进行 XML 序列化,但不一定按照您现在的方式进行。您是否有机会分享该代码(以及您正在序列化的内容的详细信息)?
  • Atm 不在 3.0 预览版中 6. 考虑其他序列化选项docs.microsoft.com/en-us/dotnet/api/…
  • 太棒了。我正在尝试利用 HttpClient 的 PostAsXmlAsync 扩展方法和 ReadAsAsync 方法与第三方 API 进行交互。目标类型不在我的控制之下。我可以创建瞬态类型和映射器来完成我想的工作,但我希望避免这种情况。
  • 我不清楚PostAsXmlAsync 究竟是如何工作的,但是您可以通过自己进行 XML 序列化来绕过它的限制,而不必映射每个单独的目标类型。 Core 支持基本的 XML 序列化,但不一定是 PostAsXmlAsync 在做什么。
  • 我也尝试过使用基本的 XML 序列化,但我收到了 InvalidOperationException,因为我正在调用的 API 返回的 XML 中有意外数据。

标签: c# xml .net-core


【解决方案1】:

您应该使用System.Xml Namespace 对 dotnet 核心中的 XML 文档进行序列化/反序列化和导航。

System.ServiceModel Namespace 与 dotnet 框架配合使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 2021-12-03
    • 2012-04-26
    • 2011-05-12
    • 2020-03-13
    相关资源
    最近更新 更多