none
WebService 使用SoapHeader调不出SoapHeaderValue,少了什么? RRS feed

  • 问题

  • SoapHeader 使用步骤:

    (1) 创建继承自 System.Web.WebServices.SoapHeader 的自定义 SoapHeader 类型。
    (2) 在 WebService 中创建拥有 public 访问权限的自定义 SoapHeader 字段。
    (3) 在需要使用 SoapHeader 的 WebMethod 上添加 SoapHeaderAttribute 访问特性。SoapHeaderAttribute 构造必须指定 memberName 参数,就是我们在第二步中申明的字段名称。
    (4) 生成器会自动为客户端生成同名的自定义 SoapHeader 类型,只不过比起我们在 WebService 端创建的要复杂一些。同时还会为代理类型添加一个 soapheaderValue 属性。

    ---同时还会为代理类型添加一个 soapheaderValue 属性。
    这个怎么添加的,我一直没找到说明哦,如果是自动的为什么我的这里没有

    MyService ims = new MyService (); 
    MyHeader myhead = new MyHeader(); 
    myhead .Uid = "a"; 
    myhead .Pwd = "b";
    ims .MyHeaderValue = myhead ; 

    ////////// 就是这个 MyHeaderValue 出不来

     

    这个问题,我找遍了网络都找不到真相。到底怎么啦?

     

     

    2011年8月31日 0:35

答案

  • 你好 你的原因,我已经弄清楚,是因为你是通过添加服务引用,而非Web服务器引用的方式;在VS2010等IDE中,默认添加的是服务引用,添加Web服务引用的方式则需要在其高级选项中设置。具体你参照我这篇文章,详细阐述了你的这个例子(参看第六个步骤生成的代理类就有MyHeaderValue类似的属性):

    http://hi.baidu.com/1987raymond/blog/item/5de505db27f26e7dd0164e3d.html
    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2011年9月7日 9:19
    版主

全部回复