void IXmlSerializable.ReadXml(XmlReader reader)
 {
     Name    = reader.GetAttribute("name");
     Uuid    = reader.ReadGuid("uuid");
     Clsid   = reader.ReadGuid("clsid");
     AppPath = reader.GetAttribute("path");
     Policy  = reader.ReadEnum <IEElevationPolicy>("policy");
 }
        private void LoadFromRegistry(RegistryKey key)
        {
            List <Guid> clsidList = new List <Guid>();

            object policyValue = key.GetValue("Policy", 0);

            if (policyValue != null)
            {
                Policy = (IEElevationPolicy)Enum.ToObject(typeof(IEElevationPolicy), key.GetValue("Policy", 0));
            }

            string clsid = (string)key.GetValue("CLSID");

            if (clsid != null)
            {
                if (Guid.TryParse(clsid, out Guid cls))
                {
                    Clsid = cls;
                }
            }

            string appName = (string)key.GetValue("AppName", null);
            string appPath = (string)key.GetValue("AppPath");

            if ((appName != null) && (appPath != null))
            {
                try
                {
                    Name    = HandleNulTerminate(appName);
                    AppPath = Path.Combine(HandleNulTerminate(appPath), Name).ToLower();
                }
                catch (ArgumentException)
                {
                }
            }
        }