如何在 Debug 和 Release 模式下使用 WPF 和 DataSet 中的各种连接字符串?

How to use various connection strings in WPF and DataSet in Debug and Release mode?

我有很多使用 WPF 和 DataSet

编写的 CRUD 应用程序

我的连接字符串是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="Depboard.Properties.Settings.DepartmentConnectionString"
            connectionString="ReleaseServer" providerName="System.Data.SqlClient" />
        <add name="Debug"
            connectionString="DebugServer" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

并且这些应用程序有很多行代码:

private static string ConnStr = ConfigurationManager.ConnectionStrings["ReleaseServer"].
                                                                       ConnectionString;

此外,DataSet 默认使用 "ReleaseServer" 连接字符串。

当我在 DebugRelease 模式之间切换时,我真的很害怕用连接字符串更改所有代码行。

是否有一种简单的方法可以在 DataSet 和程序中 DebugRelease 模式之间更改连接字符串而不修改代码?

使用#if DEBUG怎么样?

创建一个静态 class 用于获取您的服务器名称:

public static class ServerName
{
    #if DEBUG

        const string SERVER = "DebugServer";

    #else

        const string SERVER = "ReleaseServer";

    #endif

    public static string Name => SERVER;
}

然后在初始化连接字符串时使用它:

private static string ConnStr = ConfigurationManager.ConnectionStrings[ServerName.Name].ConnectionString;

但是,在我看来,这是一个有点脏的修复程序。

应用程序应该真正使用依赖注入和可能的依赖容器,以及诸如存储库模式之类的模式,以将所有初始化代码保存在一个地方(在合适的 "seam")。如果正确使用 DI,只有一个地方需要连接字符串。