Castle.Windsor.Configuration.Interpreters.XmlInterpreter.ProcessResource C# (CSharp) Method

ProcessResource() public method

public ProcessResource ( IResource source, IConfigurationStore store ) : void
source IResource
store IConfigurationStore
return void
		public override void ProcessResource(IResource source, IConfigurationStore store)
		{
			XmlProcessor.XmlProcessor processor;
			if (Kernel == null)
			{
				processor = new XmlProcessor.XmlProcessor(EnvironmentName);
			}
			else
			{
				var resourceSubSystem = Kernel.GetSubSystem(SubSystemConstants.ResourceKey) as IResourceSubSystem;
				processor = new XmlProcessor.XmlProcessor(EnvironmentName, resourceSubSystem);
			}

			try
			{
				XmlNode element = processor.Process(source);

				Deserialize(element, store);
			}
			catch(XmlProcessorException)
			{
				const string message = "Unable to process xml resource ";

				throw new Exception(message);
			}
		}

Usage Example

		public void ProperDeserialization()
		{
			DefaultConfigurationStore store = new DefaultConfigurationStore();
			XmlInterpreter interpreter = new XmlInterpreter(new ConfigResource());
			interpreter.ProcessResource(interpreter.Source, store);

			Assert.AreEqual(2, store.GetFacilities().Length);
			Assert.AreEqual(3, store.GetComponents().Length);

			IConfiguration config = store.GetFacilityConfiguration("testidengine");
			IConfiguration childItem = config.Children["item"];
			Assert.IsNotNull(childItem);
			Assert.AreEqual("value", childItem.Value);

			config = store.GetFacilityConfiguration("testidengine2");
			Assert.IsNotNull(config);
			Assert.AreEqual("value within CDATA section", config.Value);

			config = store.GetComponentConfiguration("testidcomponent1");
			childItem = config.Children["item"];
			Assert.IsNotNull(childItem);
			Assert.AreEqual("value1", childItem.Value);

			config = store.GetComponentConfiguration("testidcomponent2");
			childItem = config.Children["item"];
			Assert.IsNotNull(childItem);
			Assert.AreEqual("value2", childItem.Value);
		}
All Usage Examples Of Castle.Windsor.Configuration.Interpreters.XmlInterpreter::ProcessResource