0

我有两个独立的应用程序(都是同一系统的一部分),它们共享一个公共数据库。一个应用程序是负责与外界通信的“网关”,另一个是桌面客户端,局域网上的本地用户使用它来读取/修改/更新本地数据库中的数据。

在特定的时间间隔内,网关应用程序将从各种 Web 服务下载新数据到本地数据库。同样,网关应用程序将扫描本地数据库的更改(由用户通过桌面客户端进行)并将这些更改上传到适当的 Web 服务。

两个数据库正在使用中,一个用于生产,一个用于测试/调试。网关通过更改 app.config 中的连接字符串在两者之间切换。

在测试网关应用程序时,我希望它以只读方式运行;也就是说,它将能够将新数据下载到(测试/调试)数据库,但不能将任何更改上传回 Web 服务。

我现在完成此操作的方法是在应用程序上传数据的地方使用#IF DEBUG 指令,如下所示:

public void DetectAndUploadChanges()
{
    Uploader Up = new Uploader();
    Up.DetectChanges();

    #IF !DEBUG
        Up.UploadChanges();
    #END IF
}

这种方法依赖于我记得在代码可以上传某种类型的更改的任何地方使用调试指令。

有没有更好/替代的方法来做这种事情?

4

1 回答 1

1

您可以在运行时实例注入的地方使用 DI(依赖注入)。

于 2012-03-26T21:15:27.447 回答