我有很多使用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
?
创建一个静态类,您将使用该类来获取服务器名称:
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;
但是,我认为这是一个肮脏的解决方法。
应用程序实际上应该使用依赖项注入以及可能的依赖项容器以及诸如存储库模式之类的模式,以将所有初始化代码都放在一个地方(在适当的“接缝处”)。如果正确使用DI,则只有一个地方需要连接字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句