[英]Overloading method in webservice c#
我在一個Web服務中重載了以下方法:
[SoapHeader("Authentication")]
[WebMethod(MessageName = "DeferringTransaction", Description = "Deferring Transaction")]
public WsResponse SendTransaction(WsDeferringTransaction wsDeferringTransaction)
{
factory.LoadSettings();
WsResponse response = new WsResponse();
response.ErrorCode = "Test";
response.ReturnCode = 1;
return response;
}
[SoapHeader("Authentication")]
[WebMethod(MessageName = "ProcessedTransaction", Description = "Processed Transaction")]
public WsResponse SendTransaction(WsProcessedTransaction wsProcessedTransaction)
{
factory.LoadSettings();
WsResponse response = new WsResponse();
response.ErrorCode = "Test";
response.ReturnCode = 1;
return response;
}
但是當我嘗試使用此Web服務時,方法SendTransaction出現了另一個名稱:SendTransaction和SendTransaction1
ServiceReference1.WsDeferringTransaction wsDeferringTransaction = new ServiceReference1.WsDeferringTransaction()
{
CaptiveId = 1,
TransactionDeferringId = 2
};
ServiceReference1.WsResponse r = ws.SendTransaction(u, wsDeferringTransaction);
ServiceReference1.WsProcessedTransaction wsProcessedTransaction = new ServiceReference1.WsProcessedTransaction()
{
DocumentNumber = 4,
TransactionSequenceNumber = 450
};
ServiceReference1.WsResponse r2 = ws.SendTransaction1(u,wsProcessedTransaction);
是否可以創建重載方法並使用相同名稱使用它? 問題可能是因為SoapHeader嗎? 順便說一句,我已經有了帶有WsiProfiles.None的webServiceBinding:
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
如果使用的是SOAP,則不能使用, 方法名稱在導出的WSDL中必須具有唯一的名稱 。
根據您使用的技術,有不同的方法來指定方法名稱。 例如,在WCF中,您可以使用[OperationContract]屬性來指定名稱。
否則,方法重載很容易在Web服務類中實現。 請點擊鏈接查看:-
https://www.codeproject.com/kb/webservices/overloadinginwebservice.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.