2012-01-14 61 views
0

我有这样的:SvcUtil工具生成的代码丢失的部分

"%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\bin\svcutil.exe"^
/noLogo /t:code /l:cs /mc /tcv:Version35 /ct:System.Collections.Generic.List`1 /n:*,MYNS^
/config:MyServiceProxy.config^
/out:ServiceProxy.cs^
https://remote-service/ServiceA?wsdl 

如我期望它产生类,类型和端点配置。 当我添加多个端点例如:

"%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\bin\svcutil.exe"^
/noLogo /t:code /l:cs /mc /tcv:Version35 /ct:System.Collections.Generic.List`1 /n:*,MYNS^
/config:MyServiceProxy.config^
/out:ServiceProxy.cs^
https://remote-service/ServiceA?wsdl https://remote-service/ServiceB?wsdl https://remote-service/ServiceC?wsdl 

在MyServiceProxy.config没有终点,所有的ServiceAWsClient()方法都是从ServiceProxy.cs失踪。

更新:我删除了/ i选项,因为它使内部类。

更新:我现在能产生2名的.cs文件,如果我使用/串行化:DataContractSerializer的选项,我得到了ServiceAWsClient()类和没有它,我得到了共享类型。 有两种方法可以同时使用吗?

更新:包含ServiceAWsClient()类的文件仍然不好。方法缺少参数。为什么? WSDL包含:

<xs:element name="service" type="tns:service"/> 
<xs:element name="serviceResponse" type="tns:serviceResponse"/> 
<xs:complexType name="service"> 
    <xs:sequence> 
    <xs:element name="context" type="ns1:GenericContext" minOccurs="0"/> 
    <xs:element name="userData" type="ns2:UserData" minOccurs="0"/> 
</xs:sequence> 
</xs:complexType> 
<xs:complexType name="serviceResponse"> 
    <xs:sequence> 
     <xs:element name="resultContext" type="ns1:GenericResponseContext" minOccurs="0"/> 
    </xs:sequence> 
</xs:complexType> 

SvcUtil工具生成:

public void service() 
{ 
    base.Channel.service(); 
} 

当它应该是:

public MYNS.GenericResultContext service(MYNS.GenericContext context, MYNS.ServiceA userData) 
{ 
    MYNS.service inValue = new MYNS.service(); 
    inValue.context = context; 
    inValue.userData = userData; 
    MYNS.serviceResponse retVal = ((MYNS.ServiceA)(this)).service(inValue); 
    return retVal.resultContext; 
} 

TY!

回答

1

代失败。 svcutil不支持多重定位。

Infact ClientBase(生成基类的代理)只能访问一个端点。

你不幸得产生3个不同的代理。实际上,这些代理封装了与服务通信的实际通道(套接字)。所以看起来,一个代理只能处理一个端点

+0

使用svcutil的全部要点是获得一个代理。我确定问题在于选项,我无法弄清楚。 也试过使用/ serializer:DataContractSerializer,它有差异,但仍然不好。 – LZW 2012-01-15 09:20:45