2010-09-20 16 views
0

我有一個客戶端應用程序應該能夠處理以下內容:如何處理服務方法輸入的變化

1)請求要對客戶端執行的sql語句。 2)請求針對客戶端執行的Service Pack或Hoxfixes。 3)客戶未來可能會做更多類型的任務。

執行這些任務類型中的每一個都會產生某種結果。對於sql語句,結果是一個數據集,我通過WCF方法調用序列化回服務器,因此可以保存數據。雖然我還沒有開發到這一點,但我可以假設服務包執行的結果可能是執行狀態的指示。即成功,失敗,錯誤消息。此信息也需要通過WCF通過電線傳輸,以便它可以被記錄。到目前爲止,有兩種結果可能性。這種不同的返回信息可以放入類似「ExecutionResults」的類中,但是爲保存每種類型的ExecutionResult而採取的操作將會不同。

問題是我應該經歷嘗試設置客戶端和服務器都知道的共享(抽象類型),然後將此類型轉換爲服務器上正確的具體類型的麻煩?或者我應該爲這些不同的場景創建一個單獨的服務方法?

回答

1

如果您將共享基本類型與子類型一起使用,則仍需爲客戶端和服務器提供子類型,並且必須在基本類型上使用KnownTypeAttribute。這是一條路。

我會爲每項活動選擇不同操作的第二種方法。原因是這些活動沒有任何共享上下文。每個都是絕對不同的要求,所以我想更好的設計是使用不同的方法。你不知道未來應該處理什麼任務,所以這個設計可以更好地擴展和一致。同時在不影響現有操作的情況下添加操作對於版本控制來說更好。

相關問題