【发布时间】: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 中有意外数据。