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