|
在.NET 1.x當中,使用Microsoft.Win32.RegistryKey類的GetValue方法讀取注冊表數據時,其實數據都是經過“處理”的;
例如,某個字符串數據本來的值是%SystemRoot%/System32/IoLogMsg.dll但是用GetValue方法得到的數據卻是C:/WINDOWS/System32/IoLogMsg.dll
也就是說,在讀取注冊表中的字符串時,系統會自作主張地替你展開環(huán)境變量。
這的確省去我們調用Environment.ExpandEnvironmentVariables方法的麻煩,但是反過來,當我們希望原封不動地拷貝一個注冊表的字符串時則束手無策。
在.NET2.0當中,我們驚喜地發(fā)現Microsoft.Win32.RegistryKey類有了一個小小的改動,就是其GetValue方法增添了一個新的重載:
public Object GetValue (
string name,
Object defaultValue,
RegistryValueOptions options
)
該方法的第三個參數是一個枚舉,目前只有一個有用的值就是DoNotExpandEnvironmentNames。
指定該值,GetValue得到的結果就是沒有經過展開的數據了。
AspNet技術:.Net 2.0 原汁原味讀取注冊表,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。