所以我的设置页面上有一个名为Test Database
的按钮
我的目标是在单击该按钮时更改读取注册表,它将从虚拟数据库中读取。
我遇到的问题是,它存在两个不同的.cs文件,并且想知道如何将信息传递给另一个。
public static FBContext Get()
{
if (ConnectionString == null)
{
var openSubKey = Registry.CurrentUser.OpenSubKey("SOFTWARE");
if (openSubKey != null)
{
var registryKey = openSubKey.OpenSubKey("TestSoftware");
if (registryKey != null)
ConnectionString = registryKey.GetValue("ctx").ToString();
}
}
return new FBContext(ConnectionString);
}
我想将内部IF语句更改为类似的内容,其中将存在可通过不同视图访问的Global
bool变量TestDatabase
。
if (registryKey != null)
{
If(TestDataBase == false)
ConnectionString = registryKey.GetValue("ctx").ToString();
else
ConnectionString = "Test Database String";
}
答案 0 :(得分:0)
首先,我认为您必须重新考虑在层或服务中组织您的应用程序。
至少你必须在表示和服务类之间分开:Viewmodels(在ASP.Net,Webforms或MVC中)不应该知道数据库访问细节。
实现分离使用依赖注入的常用方法。
说,你可以将静态类DBConfiguration作为
public static class DBConfiguation
{
string _connection = null;
public string Connection {
get
{
if (_connection == null)
{
//... you load code
}
return _connection;
}
set
{
_connection = value;
}
}
}
并始终使用该类访问连接字符串。