c# - 如何将 SOAP header 附加到我的 C# 客户端?

标签 c# web-services soap soapheader

我已将 Web 服务设置为接收名称为 "TestHeader" 且参数为 "Name" 的 Soap header

如何在客户端中创建 SOAP header 并将其发送到服务?

到目前为止,我已经在我的客户端中创建了它。

public class TestHeader : SoapHeader
{
    public String Name;
}

初始化我的服务,

    Test.TestServicesClient SOAP = new Test.TestServicesClient();

初始化了我的标题。

  TestHeader header = new TestHeader();

在标题中设置变量

header.Name = "BoB";

现在怎么办?我尝试过遵循 MSDN 和其他教程,但没有任何进展。

TestService.cs

using System;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Channels;

namespace Test
{

    // Define a SOAP header by deriving from the SoapHeader class.
    public class TestHeader : SoapHeader
    {
        public String Name;
    }

   public class TestService : ITestServices
    {      

        public TestHeader TestInHeader;


       [WebMethod]
        [SoapHeader("TestInHeader", Direction = SoapHeaderDirection.In)]
        public List<ServiceDetails> GetServiceDetails(Int32 CostCentreNo, Int32 ServiceCode, Boolean Recurring)
        {
            throw new System.Exception(TestInHeader.ToString());

        }
    }
}

最佳答案

我想我有点晚了,但答案是:

    Test.TestHeader header = new Test.TestHeader();
    header.Name = "BoB";
    Test.TestService SOAP = new Test.TestService();
    SOAP.TestHeaderValue = header;
    SOAP.GetServiceDetails(0,0,False);

这是一个LINK这澄清了主题: “...Visual Studio 将在 Web 服务代理中创建一个名为“UserCredentialsValue”的属性,它将映射 Web 服务中的“消费者”公共(public)属性[继承自 SoapHeader]。”

关于c# - 如何将 SOAP header 附加到我的 C# 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7554222/

相关文章:

c# - 具有整数键的哈希表(字典等)

c# - 使用其类型的向下转型实例

c# - FakeItEasy,从子类伪造一个父虚方法

c# - HttpWebRequest 结果为 “The request was aborted: Could not create SSL/TLS secure channel” 并返回 code=AlgorithmMismatch

iphone - 用于 iPhone 的 Objective C 中的基本脏话过滤器

android - 如何在 Android 中解析复杂的 SOAP 响应

c# - WCF 与 SOAP HTTPS 和双工绑定(bind)

Java webservice (soap) 客户端 - 使用证书

java - 在 JAX-WS 中编码多态对象

perl - 如何更改在 perl 中生成 SOAP::Lite 请求的 xml 元素的顺序?