/// <summary> /// <para>Opens the configuration settings and registers them with the application.</para> /// </summary> /// <param name="serviceProvider"> /// <para>The a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.</para> /// </param> public void Open(IServiceProvider serviceProvider) { ConfigurationContext configurationContext = ServiceHelper.GetCurrentConfigurationContext(serviceProvider); ConfigurationSectionCollectionNode sectionsNode = null; ConfigurationNode configurationNode = ServiceHelper.GetCurrentRootNode(serviceProvider); RemoveCurrentConfigurationSectionCollectionNode(serviceProvider); try { string appName = SR.DefaultApplicationName; ConfigurationSettings configurationSettings = configurationContext.GetMetaConfiguration(); if (null != configurationSettings) { appName = configurationSettings.ApplicationName; if (configurationSettings.ConfigurationSections.Count > 0) { sectionsNode = new ConfigurationSectionCollectionNode(configurationSettings); configurationNode.Nodes.Add(sectionsNode); } } if (configurationNode is ApplicationConfigurationNode) { ((ApplicationConfigurationNode)configurationNode).Name = appName; } } catch (ConfigurationException e) { ServiceHelper.LogError(serviceProvider, sectionsNode, e); } }
/// <summary> /// <para>Saves the configuration settings created for the application.</para> /// </summary> /// <param name="serviceProvider"> /// <para>The a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.</para> /// </param> public void Save(IServiceProvider serviceProvider) { ConfigurationContext configurationContext = ServiceHelper.GetCurrentConfigurationContext(serviceProvider); ConfigurationNode node = ServiceHelper.GetCurrentRootNode(serviceProvider); try { ConfigurationSettings configurationSettings = GetConfigurationSettings(serviceProvider); configurationSettings.ApplicationName = node.Name; configurationContext.WriteMetaConfiguration(configurationSettings); } catch (ConfigurationException e) { ServiceHelper.LogError(serviceProvider, node, e); } catch (InvalidOperationException e) { ServiceHelper.LogError(serviceProvider, node, e); } }