如何在 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" 连接字符串。
当我在 Debug
和 Release
模式之间切换时,我真的很害怕用连接字符串更改所有代码行。
是否有一种简单的方法可以在 DataSet
和程序中 Debug
和 Release
模式之间更改连接字符串而不修改代码?
使用#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,只有一个地方需要连接字符串。
我有很多使用 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" 连接字符串。
当我在 Debug
和 Release
模式之间切换时,我真的很害怕用连接字符串更改所有代码行。
是否有一种简单的方法可以在 DataSet
和程序中 Debug
和 Release
模式之间更改连接字符串而不修改代码?
使用#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,只有一个地方需要连接字符串。