【发布时间】:2011-08-30 17:10:25
【问题描述】:
我正在使用网络服务来更新我在第三方数据库上的一些用户信息。
这个信息通常也需要在我的数据库上更新(我知道这听起来不太好,但我对此无能为力..)。
最近我们开始在 Web 服务的数据库和我们的本地数据库之间遇到各种差异问题,所以现在我正在寻找一种方法来确保只有在 Web 服务调用返回成功时才更新我的本地数据库。
这样做的一个主要问题是 Web 服务可能会以多种方式返回成功(例如 bool、enum 等),当然每种方法都有不同的签名。
例如:
我有 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 方法(但也许有更好的方法来确保 db 的方法仅在 WS 的方法成功完成)。
我解决这个问题的最好方法是编写一个方法,调用它UpdateWSandDB,它接收 WS 方法的委托、成功类型(例如 bool/enum)、成功值、db 方法名称、每个方法的参数。 .. 如您所见,这是一种非常尴尬的做法。
有没有更整洁更优雅的方式?
谢谢。
【问题讨论】: