【问题标题】:MessageHeader.CreateHeader is adding xmlns="" to all attributes in serializationMessageHeader.CreateHeader 正在向序列化中的所有属性添加 xmlns=""
【发布时间】:2021-01-08 14:26:09
【问题描述】:

我正在尝试从新的 .NET Core 3.1 项目调用旧的 WCF .NET 服务。我想向 SOAP 请求添加一个自定义标头,因此我创建了一个 IClientMessageInspector 并在 BeforeSendRequest 上创建并添加我的标头,如下所示: var header = MessageHeader.CreateHeader("StartRequest", "http://mynamespace", headerValue); request.Headers.Add(header);

标头值基于具有属性[DataContract(Namespace = "")] 的常规 c# 类的实例

类的所有属性都用[DataMember]装饰

我的问题是,当我在提琴手中查看请求时,我看到所有属性在序列化时都收到了 xmlns=""。这打破了 SOAP 合同,我的请求失败了。我尝试使用 DataContractSerializer,但不知道如何防止 if 生成 xmlns。

其他人解决了这个问题吗?

【问题讨论】:

    标签: c# asp.net-core wcf .net-core


    【解决方案1】:

    我通过让头类继承 MessageHeader 并覆盖 OnWriteHeaderContents 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2021-03-28
      • 2010-10-15
      • 2018-06-28
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多