Svcutil generated missing code codes

I have it:

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

It generates classes, types, and endpoint configurations as I expect. When I add some ex endpoints:

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

there are no endpoints in MyServiceProxy.config, and all ServiceAWsClient () methods are missing in ServiceProxy.cs.

UPDATE: I removed the / i option because it made inner classes.

UPDATE: Now I can generate two .cs files, if I use the / serializer: DataContractSerializer option, I got the ServiceAWsClient () classes, and without it I got the generic types. Is there a way to get the same time?

UPDATE: The file containing the ServiceAWsClient () classes is still not very good. There are no parameters in the methods. What for? WSDL contains:

 <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 generates:

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

when it should be:

 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!

0
source share
1 answer

Generation failed. svcutil does not support multi-targeting.

Infact ClientBase (the proxy server that generates the base class) can access only one endpoint.

You are not comfortable creating 3 different proxies. In fact, these proxies encapsulate the actual channel (socket) that communicates with the service. Thus, it seems that one proxy can only process one endpoint

+1
source

Source: https://habr.com/ru/post/1390076/


All Articles