我正在使用Web服務更新第三方數據庫中某些用戶的信息。
這個信息通常需要更新我的數據庫(我知道這聽起來不太好,但我無能爲力。)。
最近我們開始在Web服務的數據庫和我們的本地數據庫之間出現各種差異問題,所以現在我正在尋找一種方法來確保我的本地數據庫只在Web服務調用返回成功時才更新。
這樣做的一個主要問題是Web服務可能以多種方式返回成功(例如bool,枚舉等),當然每個方法都有不同的簽名。確保僅在其他方法成功完成時運行方法
例如:
我有Web服務的方法,如:
public bool ChangeDetails(User user)
和:
public SuccessStatus RemoveUser(long userId)
其中僅如果成功完成將觸發一個電話:
public bool UpdateUserDetails(long userId string userName)
和:
public bool RemoveUser(long userId)
(我只是爲了證明這些方法的分歧..)
我想要做的是,將「配合」每個WS的方法的一個DB方法,通過使用一種機制單一的方法(但也許有一個更好的方法來確保數據庫的方法只有在WS方法成功完成時纔會執行)。
解決這個問題的最佳方法是編寫一個方法,將其稱爲UpdateWSandDB
,它接收WS方法的委託,它的成功類型(例如bool/enum),成功值,數據庫方法名稱以及每個方法的參數。 ..你可以看到這是一個非常尷尬的做法。
有沒有更整潔更優雅的方式?
謝謝。