2010-03-04 21 views
1

我有很多合作伙伴使用的一些web服務(.net 2.0/C#)。其中一人希望能夠發送其他參數。將參數添加到webservice會有害嗎?

我可以爲方法指定一個參數,並確保不管其他合作伙伴使用何種技術給我們打電話都不會有任何後果嗎?

感謝

回答

0

如果你正在傳遞一個DTO,你可以添加一個可空的新屬性而不會出現問題。

如果不是很難,我認爲你不能有兩個同名的方法。也許爲這個夥伴創造另一種方法。

4

如果你改變你的方法簽名,他們將不得不改變他們的呼聲,以適應。更好的方法可能是在新參數中包含第二個方法簽名,並在後臺更改代碼,以便原始方法調用新方法,並選擇新參數的默認值。這確保了與所有客戶的兼容性。

+1

是的,SOLID原則也應該適用於Web服務。 「http://en.wikipedia.org/wiki/Solid_(Object_Oriented_Design)?」 – bzlm 2010-03-04 09:55:02

+0

我在這裏的問題是我已經創建了3個其他方法(MyMethodWithParameter1,MyMethodWithParameter2等),我想保持我的方法列表簡單。 我完全同意堅實原則,但是當你與具有各種技能水平的開發人員打交道時,你必須保持簡單。 – 2010-03-04 10:45:47

+0

如果您不得不經常更改參數,我會考慮創建一個將XML作爲輸入的方法,以便在不更改方法簽名的情況下進行更改。然後,您在後臺的代碼可以處理任何XML提供的內容。 – Paddy 2010-03-04 10:48:20