基于生产/调试标志的动态连接字符串

时间:2014-02-24 08:50:38

标签: c# connection-string

我正在编写基于C#.NET 4.5的Windows窗体应用程序。

我想在其中一个类(可能是主Form的类)中设置一个标志(布尔值),用于定义应用程序是否在生产调试模式下运行。我将使用此标志来控制应用程序的各种操作,包括基于GUI的操作以及要使用的连接字符串。

我对基于GUI的东西没有问题,因为标志是在主Form的类中定义的,但是我遇到了连接字符串的问题。有一个单独的DB访问类,它基本上只定义一个这样的常量:

namespace MyApp
{
    class DatabaseInterface
    {
        public static string MyConnectionString = "Data Source=server;Initial Catalog=db";
    }
}

我想根据生产/调试标志更改连接字符串(实际上只是“服务器”)。我不想在每个使用连接字符串的地方放置if / then / else(在调试和生产字符串之间切换),但是想要一个可以在整个应用程序中使用的命名连接字符串。我也不想实例化一个DatabaseInterface对象(我知道我可以在DatabaseInterface类的公共属性的“get”定义中动态地改变它。)

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

如果你想根据一个标志做这个并且不希望if在任何地方,我建议你使用这样一个简单的getter:

namespace MyApp
{
    class DatabaseInterface
    {
        public static string getConnectionString()
        {
            return myFlag ? "Data Source=server;Initial Catalog=db" : "AnotherString";
        }
    }  
 }