也許這是不可能的,但我想驗證。執行第一次實例
我有一個類,並在其構造函數中從Windows註冊表中讀取一些值。
我需要這個價值在班級裏面,我不能把它作爲參數傳遞給班級。
這是類(A的DbContext和readed值是連接字符串)
public class VtulDb : IdentityDbContext<User>
{
public VtulDb()
{
RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey vtulRegistryBranch = hklm.OpenSubKey(@"SOFTWARE\Tulpep\Vtul");
string connectionString = vtulRegistryBranch.GetValue("DBConnectionString").ToString();
Database.Connection.ConnectionString = connectionString;
}
public DbSet<Computer> Computers { get; set; }
}
所以,問題是,這個類是從網站實例化,在每個請求。因此,在每個請求中,應用程序正在讀取註冊表項,我不認爲這是最好的方法。
你會怎樣從註冊表中讀取這個值,只是這個類第一次被實例化,然後在RAM中有字符串?
準確地說,你爲什麼不能把這個值傳遞給你的班級?如果可以的話,可以將它作爲會話變量存儲。 (你可以反正,但那會很混亂) – 2014-01-19 00:37:33
研究緩存這將是解決這個問題的方法。 –
靜態構造函數也可能派上用場,如果你真的不能通過參數傳遞值。 – Patko