2012-01-14 62 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