Wenn in .Net 1.x die GetValue-Methode der Microsoft.Win32.RegistryKey-Klasse zum Lesen von Registrierungsdaten verwendet wird, werden die Daten tatsächlich „verarbeitet“;
Beispielsweise ist der ursprüngliche Wert einer bestimmten Zeichenfolge Daten
%SystemRoot%System32IoLogMsg.dll
Die mit der GetValue-Methode erhaltenen Daten sind es jedoch
C:WINDOWSSystem32IoLogMsg.dll
Mit anderen Worten: Beim Auslesen des Strings in der Registry erweitert das System die Umgebungsvariablen eigenständig für Sie.
Dies erspart uns zwar die Mühe, die Methode Environment.ExpandEnvironmentVariables aufzurufen, aber umgekehrt sind wir hilflos, wenn wir eine Registrierungszeichenfolge intakt kopieren möchten.
In .Net2.0 waren wir angenehm überrascht, als wir feststellten, dass die Klasse Microsoft.Win32.RegistryKey eine kleine Änderung aufweist, d. h., ihrer GetValue-Methode wurde eine neue Überladung hinzugefügt:
öffentliches Objekt GetValue (
Stringname,
Objekt-Standardwert,
RegistryValueOptions-Optionen
) Der dritte Parameter dieser Methode ist eine Aufzählung, und derzeit ist der einzige nützliche Wert DoNotExpandEnvironmentNames.
Geben Sie diesen Wert an. Das von GetValue erhaltene Ergebnis sind die Daten, die nicht erweitert wurden.