Di .Net 1.x, saat menggunakan metode GetValue kelas Microsoft.Win32.RegistryKey untuk membaca data registri, data sebenarnya "diproses";
Misalnya, nilai asli dari data string tertentu adalah
%SystemRoot%System32IoLogMsg.dll
Namun data yang diperoleh dengan menggunakan metode GetValue adalah
C:WINDOWSSystem32IoLogMsg.dll
Dengan kata lain, saat membaca string di registri, sistem akan memperluas variabel lingkungan untuk Anda atas inisiatifnya sendiri.
Hal ini menyelamatkan kita dari kesulitan memanggil metode Environment.ExpandEnvironmentVariables, namun sebaliknya, ketika kita ingin menyalin string registri secara utuh, kita tidak berdaya.
Di .Net2.0, kami terkejut menemukan bahwa kelas Microsoft.Win32.RegistryKey memiliki perubahan kecil, yaitu, kelebihan beban baru telah ditambahkan ke metode GetValue-nya:
GetValue Objek publik (
nama string,
Nilai default objek,
Opsi RegistryValueOptions
) Parameter ketiga dari metode ini adalah enumerasi, dan saat ini satu-satunya nilai yang berguna adalah DoNotExpandEnvironmentNames.
Tentukan nilai ini, dan hasil yang diperoleh GetValue adalah data yang belum diperluas.