0

我在WCF中有一個函數,它接受一個參數並從另一個應用程序調用。現在,我想在WCF中添加一個可選參數,這樣它就不會影響前面代碼中調用的方法。在wcf服務中傳遞可選參數

getData(int number, int type=0) 

我試圖在第二個參數使用默認值,設置[WebGet(UriTemplate但沒有成功。如果我使用DataMemberIsRequired屬性,那麼它也將更改以前代碼的方法調用。

我不想創建另一個WCF方法。有沒有其他解決方法?

回答

1

在爲WCF實現接口時,不能使用可選參數。 Can't use optional parameters when implementing an interface for a WCF

使用函數重載

getData(int number) 
getData(int number, int type) 
+0

這將導致重複的方法。我有100多種wcf方法,不想將它們複製爲可選參數 – AshishJindal

+0

http://forums.asp.net/t/1608437.aspx?can+we+use+optional+params+in+C+while+定義+服務+合同+ –

0

你不能在一個WCF服務方法傳遞可選參數,也不能在具有相同名稱的WCF服務重載方法。 如果你想重載方法,你可以使用Name屬性重載方法是這樣的:

[OperationContract (Name = "MethodName")] 

我通過設置默認爲空值的URI,以便使這個參數可選,如果用戶提供如解決了這個問題:「類型「價值,我收到了它,但如果用戶沒有提供任何價值,在這種情況下默認值爲null,這樣就解決了我的問題。

希望這回答你的問題。