我很困惑如何获取存储在注册表中的连接字符串以供DataContext使用。
我在哪里以及如何做到这一点:
public DataClassesDataContext() :
base(global::DDSTime.Properties.Settings.Default.DDSTimeConnectionString, mappingSource)
{
OnCreated();
}
不使用Properties.Settings.Default.DDSTimeConnectionString但来自注册表的值?
我想这样做,因为应用程序在不同的位置使用,我不想将配置文件中的连接字符串留给所有人看。 只需一个小脚本,所有机器都会在其注册表中插入connectionstring键,并且不需要创建不同的“版本”,因为每个位置都在现场使用自己的SQL Server。
答案 0 :(得分:0)
如果你还没有合适的构造函数,那么应该很容易创建一个像:
public DataClassesDataContext(string connectionString) :
base(connectionString, mappingSource)
{
OnCreated();
}
这意味着每次创建新的DataContext时都需要传递connectionString。如果您愿意,可以将当前构造函数更改为
private static string GetDefaultConnectionString()
{
var connectionString = ... // Read value from registry
if (String.IsNullOrEmpty(connectionString))
connectionString = global::DDSTime.Properties.Settings.Default.DDSTimeConnectionString ;
return connectionString;
}
public DataClassesDataContext() :
base(GetDefaultConnectionString(), mappingSource)
{
OnCreated();
}