c# - 数据契约(Contract)序列化器可以用于任何第三方网络服务吗

标签 c# wcf datacontractserializer

我有一个大型的第三方网络服务; reference.cs 是 33 MB。使用 Visual Studio 2017,代理使用 XML Serializer,这会在创建 channel 时造成 5 秒的延迟。我在 Microsoft 开了一个案例,他们部分地向我展示了如何修改 reference.cs 以使用 Datacontract 序列化程序。在同一台机器上, channel 创建时间为 20 毫秒,这完全符合我的需求。

不幸的是,消息因细微差别而失败,Microsoft 支持人员无法提供帮助。

有已知的限制吗?我应该寻找任何模式来确定它根本不起作用,我应该开始使用 HTTP 请求重写所有内容吗?

导致整体延迟的实际方法:

public XmlMembersMapping ImportMembersMapping(string elementName, string ns,
  XmlReflectionMember[] members, bool hasWrapperElement, bool writeAccessors,
  bool validate, XmlMappingAccess access) {
  ElementAccessor element = new ElementAccessor();
  element.IsSoap = true;
  element.Name = elementName == null || elementName.Length == 0 ? elementName : 
    XmlConvert.EncodeLocalName(elementName);
}

最佳答案

Any patterns I should look for which makes it for sure it will not work at all and I should start rewriting everything using HTTP Requests?

我已经集成了 Amadeus。不幸的是,发送 HTTP 请求也是我唯一的解决方案。我正在编写信封并“注入(inject)”数据并将其发送到网络服务,然后通过 XDocument 填充响应。

关于c# - 数据契约(Contract)序列化器可以用于任何第三方网络服务吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44637243/

相关文章:

c# - 为什么在 XAML 中添加的 ListBoxItems 没有样式?

c# - 如何为自托管 WCF 服务启用跨域调用

serialization - ServiceStack 在 XML 中序列化列表

c# - 为什么我不能使用 DataContractSerializer 序列化一个对象?

c# - 过滤 ASP.NET ObjectDataSource?

c# - 绑定(bind) Loaded 事件?

c# - 使用多线程与 C# 进行 OCR

android - 在 Android 中使用带有 Post Params 的 WCF Web 服务

c# - WCF 服务不会返回 500 Internal Server Error。相反,只有 400 Bad Request

c# - DataContractSerialiser 和 Serializable 的问题