Пример #1
0
        public static AppDomainParameters Read(XmlReader reader)
        {
            AppDomainParameters rv = new AppDomainParameters();
            XmlDocument xd = new XmlDocument();
            xd.Load(reader);

            foreach (XmlNode node in xd.DocumentElement.ChildNodes) {
                XmlElement el = node as XmlElement;
                if (el != null) {
                    switch (el.LocalName) {
                        case "ApplicationBase":
                            rv.ApplicationBase = SafeTrim(el.InnerText);
                            break;
                        case "ApplicationName":
                            rv.ApplicationName = SafeTrim(el.InnerText);
                            break;
                        case "CachePath":
                            rv.CachePath = SafeTrim(el.InnerText);
                            break;
                        case "ConfigurationFile":
                            rv.ConfigurationFile = SafeTrim(el.InnerText);
                            break;
                        case "DynamicBase":
                            rv.DynamicBase = SafeTrim(el.InnerText);
                            break;
                        case "LicenseFile":
                            rv.LicenseFile = SafeTrim(el.InnerText);
                            break;
                        case "PrivateBinPath":
                            rv.PrivateBinPath = SafeTrim(el.InnerText);
                            break;
                        case "PrivateBinPathProbe":
                            ((IAppDomainSetup)rv).PrivateBinPathProbe = SafeTrim(el.InnerText);
                            break;
                        case "ShadowCopyDirectories":
                            rv.ShadowCopyDirectories = SafeTrim(el.InnerText);
                            break;
                        case "ShadowCopyFiles":
                            rv.ShadowCopyFiles = SafeTrim(el.InnerText);
                            break;
                        case "ShouldExcludeApplicationBaseFromAssemblyProbe":
                            rv.ShouldExcludeApplicationBaseFromAssemblyProbe = bool.Parse(SafeTrim(el.InnerText));
                            break;
                        default:
                            throw new InvalidOperationException("Unrecognized element in app domain setup: " + el.Name);
                    }
                }
            }

            rv.ValidatePrivateBinPaths();
            return rv;
        }