c#调用java写的webservice,添加Soapheader,如何在SOAPheader 中添加类型标记符号

c#调用java写的webservice,添加Soapheader,怎么在SOAPheader 中添加类型标记符号
c#调用java写的webservice,添加Soapheader,怎么在SOAPheader 中添加类型标记符号
电信提供给我们java写的webservice
经过C#调用后,要添加自定义的SOAPHeader。
利用代理类函数生成的SOAPHeader都不带类型标记符号。
问怎么才能添加上呢
C#生成的 SOAPHeader如下:


<soap:Header>
  <RequestSOAPHeader xmlns="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1">
  <spId>1</spId>
  <spPassword>spPassword</spPassword>
  <timeStamp>timeStamp</timeStamp>
  <ProductId>productId</ProductId>
  <transactionId>transactionId</transactionId>
  <transEnd>transEnd</transEnd>
  <linkId>linkId</linkId>
  <OA>OA</OA>
  <FA>FA</FA>
  <multicastMessaging>multicastMessaging</multicastMessaging>
  </RequestSOAPHeader>
  </soap:Header>
标准的SOAPHeader 如下:
* <soapenv:Header>
  * <tns:RequestSOAPHeader xmlns:tns="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1">
  * <tns:spId>123456</tns:spId>
  * <tns:spPassword>123456</tns:spPassword>
  * <tns:timeStamp>0101111111</tns:timeStamp>
  * <tns:productId>123456</tns:productId>
  * <tns:transactionId>123456</tns:transactionId>
  * <tns:transEnd>-1</tns:transEnd>
  * <tns:linkId>123456</tns:linkId>
  * <tns:OA>tel:8613907550001</tns:OA>
  * <tns:FA>tel:8613907550001</tns:FA>
  * <multicastMessaging>false</tns:multicastMessaging>
  * </tns:RequestSOAPHeader>
  * </soapenv:Header>

注意两个黑体部分不一样,自动生成的是<soap></soap> 标准提供的是<soapenv></soapenv>
另外 每个节点都有<tns:,请问 怎么让自动生成的也添加上<tns呢?

------解决方案--------------------
这个应该没问题
C# code

public class TransactionID:SoapHeader{  
[XmlValue]  
public string Value;  
}

------解决方案--------------------
RequestSOAPHeader header=new RequestSOAPHeader();
header.Namespaces.Add("tns");
-----------
好像在类上面还要添加属性namespace属性来设置:
tns="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1"
------解决方案--------------------
看样子楼主在做SP网关?
------解决方案--------------------
Axis Xfire .net-WS 这些集成的Ws优点很多

缺点就是在报文级的控制上不够好。


我做了一个轻量级的类似Ws的工具,目前调通了.net、java、js的部分。