如果Web服務是SOAP服務,那麼您可以將wsdl獲取到XDocument對象或XmlDocument中,然後讀取wsdl:portType元素中的wsdl:operation元素以獲取所有可用的操作。
注意:只有服務提供商公開wsdl時纔有可能。
用很少的操作示例WSDL如下所示:
<wsdl:portType name="ISampleService">
<wsdl:operation name="GetData">
<wsdl:input wsaw:Action="http://tempuri.org/ISampleService/GetData" message="tns:ISampleService_GetData_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/ISampleService/GetDataResponse" message="tns:ISampleService_GetData_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="GetEmail">
<wsdl:input wsaw:Action="http://tempuri.org/ISampleService/GetEmail" message="tns:ISampleService_GetEmail_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/ISampleService/GetEmailResponse" message="tns:ISampleService_GetEmail_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="GetPersonCount">
<wsdl:input wsaw:Action="http://tempuri.org/ISampleService/GetPersonCount" message="tns:ISampleService_GetPersonCount_InputMessage" />
<wsdl:output wsaw:Action="http://tempuri.org/ISampleService/GetPersonCountResponse" message="tns:ISampleService_GetPersonCount_OutputMessage" />
</wsdl:operation>
</wsdl:portType>
從服務上面部暴露3種方法:
- 的GetData
- GetEmail
- GetPersonCount
但在我的情況下,wsdl不是前構成...... :( – Shankar