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

私は期待どおりそれは、クラス、タイプおよびエンドポイントの設定を生成します。 私は複数のエンドポイントのEX追加:MyServiceProxy.configで

"%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 

なしエンドポイントを、そしてすべてのServiceAWsClient()メソッドがServiceProxy.csから欠落しています。

更新:私は/ iオプションを削除しました。これはクラスを内部にしたからです。

UPDATE:DataContractSerializerのオプション、私はServiceAWsClient()のクラスを持って、それなしで、私は共有のタイプを得た:私は今、私は/シリアライザを使用する場合、2は.csファイルを生成することができます。 同じ時間に両方を取得する方法はありますか?

更新: 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はマルチターゲティングをサポートしていません。

事実、ClientBase(基本クラスを生成するプロキシ)は、1つのエンドポイントにしかアクセスできません。

残念ながら、3つの異なるプロキシを生成する必要があります。実際、これらのプロキシはサービスと通信する実際のチャネル(ソケット)をカプセル化しています。したがって、1つのプロキシが1つのエンドポイントしか処理できないようです。

+0

svcutilを使用する全体のポイントは、単一のプロキシを取得することです。私は問題がオプションであると確信しています、私はそれを把握することはできません。 /シリアライザ:DataContractSerializerも使用しようとしましたが、それは相違がありますが、まだ良くありません。 – LZW

関連する問題