public void Load ()
{
values = new Hashtable ();
if (!File.Exists (file))
return;
try {
using (FileStream fs = File.OpenRead (file)){
StreamReader r = new StreamReader (fs);
string xml = r.ReadToEnd ();
if (xml.Length == 0)
return;
SecurityElement tree = SecurityElement.FromString (xml);
if (tree.Tag == "values" && tree.Children != null){
foreach (SecurityElement value in tree.Children){
if (value.Tag == "value"){
LoadKey (value);
}
}
}
}
} catch (UnauthorizedAccessException){
values.Clear ();
throw new SecurityException ("No access to the given key");
} catch (Exception e){
Console.Error.WriteLine ("While loading registry key at {0}: {1}", file, e);
values.Clear ();
}
}