public ConfigurationSourceSectionNode Build()
		{
			ConfigurationSourceSectionNode rootNode = new ConfigurationSourceSectionNode();
			foreach (ConfigurationSourceElement configurationSourceElement in configurationSourceSection.Sources)
			{
				CreateConfigurationSourceElement(rootNode, configurationSourceElement);
			}			
			rootNode.SelectedSource = defaultNode;
			return rootNode;
		}
		private void CreateConfigurationSourceElement(ConfigurationSourceSectionNode node, ConfigurationSourceElement configurationSourceElement)
		{
			ConfigurationNode sourceNode = NodeCreationService.CreateNodeByDataType(configurationSourceElement.GetType(), new object[] { configurationSourceElement });
			if (null == sourceNode)
			{
				LogNodeMapError(node, configurationSourceElement.GetType());
				return;
			}
			if (configurationSourceSection.SelectedSource == configurationSourceElement.Name) defaultNode = (ConfigurationSourceElementNode)sourceNode;
			node.AddNode(sourceNode);
		}
예제 #3
0
        /// <summary>
        /// Opens the configuration sources section, builds the design time nodes and adds them to the application node.
        /// </summary>
        /// <param name="serviceProvider">The a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.</param>
        /// <param name="rootNode">The root node of the application.</param>
        /// <param name="section">The <see cref="ConfigurationSection"/> that was opened from the <see cref="IConfigurationSource"/>.</param>
        protected override void OpenCore(IServiceProvider serviceProvider, ConfigurationApplicationNode rootNode, ConfigurationSection section)
        {
            if (null != section)
            {
                ConfigurationSourceSectionNodeBuilder builder = new ConfigurationSourceSectionNodeBuilder(serviceProvider, (ConfigurationSourceSection)section);
                ConfigurationSourceSectionNode        node    = builder.Build();
                SetProtectionProvider(section, node);

                rootNode.AddNode(node);
            }
        }
        public ConfigurationSourceSectionNode Build()
        {
            ConfigurationSourceSectionNode rootNode = new ConfigurationSourceSectionNode();

            foreach (ConfigurationSourceElement configurationSourceElement in configurationSourceSection.Sources)
            {
                CreateConfigurationSourceElement(rootNode, configurationSourceElement);
            }
            rootNode.SelectedSource = defaultNode;
            return(rootNode);
        }
        protected override void OnExecuted(EventArgs e)
        {
            base.OnExecuted(e);
            ConfigurationSourceSectionNode node = ChildNode as ConfigurationSourceSectionNode;

            Debug.Assert(node != null);

            SystemConfigurationSourceElementNode sourceNode = new SystemConfigurationSourceElementNode();

            node.AddNode(sourceNode);
            node.SelectedSource = sourceNode;
        }
예제 #6
0
        private void CreateConfigurationSourceElement(ConfigurationSourceSectionNode node, ConfigurationSourceElement configurationSourceElement)
        {
            ConfigurationNode sourceNode = NodeCreationService.CreateNodeByDataType(configurationSourceElement.GetType(), new object[] { configurationSourceElement });

            if (null == sourceNode)
            {
                LogNodeMapError(node, configurationSourceElement.GetType());
                return;
            }
            if (configurationSourceSection.SelectedSource == configurationSourceElement.Name)
            {
                defaultNode = (ConfigurationSourceElementNode)sourceNode;
            }
            node.AddNode(sourceNode);
        }
예제 #7
0
        /// <summary>
        /// Gets the a <see cref="ConfigurationSectionInfo"/> for the configuration sources.
        /// </summary>
        /// <param name="serviceProvider">The a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.</param>
        /// <returns>A <see cref="ConfigurationSectionInfo"/> for the configuration for the configuration sources.</returns>
        protected override ConfigurationSectionInfo GetConfigurationSectionInfo(IServiceProvider serviceProvider)
        {
            ConfigurationNode rootNode          = ServiceHelper.GetCurrentRootNode(serviceProvider);
            ConfigurationSourceSectionNode node = null;

            if (null != rootNode)
            {
                node = (ConfigurationSourceSectionNode)rootNode.Hierarchy.FindNodeByType(rootNode, typeof(ConfigurationSourceSectionNode));
            }
            ConfigurationSourceSection sourcesSection = null;

            if (node == null)
            {
                sourcesSection = null;
            }
            else
            {
                ConfigurationSourceSectionBuilder builder = new ConfigurationSourceSectionBuilder(node);
                sourcesSection = builder.Build();;
            }
            return(new ConfigurationSectionInfo(node, sourcesSection, ConfigurationSourceSection.SectionName));
        }
		public ConfigurationSourceSectionBuilder(ConfigurationSourceSectionNode configurationSourceSectionNode) 
		{
			this.configurationSourceSectionNode = configurationSourceSectionNode;			
		}
예제 #9
0
        private ConfigurationSourceSectionNode GetConfigurationSourceNode()
        {
            ConfigurationSourceSectionNode node = FindNodeByType(typeof(ConfigurationSourceSectionNode)) as ConfigurationSourceSectionNode;

            return(node);
        }
예제 #10
0
 public ConfigurationSourceSectionBuilder(ConfigurationSourceSectionNode configurationSourceSectionNode)
 {
     this.configurationSourceSectionNode = configurationSourceSectionNode;
 }