PartialConfigurationStore
using Castle.Core.Configuration;
using Castle.Core.Resource;
using Castle.MicroKernel;
using Castle.MicroKernel.SubSystems.Configuration;
using System;
namespace Castle.Windsor.Installer
{
internal class PartialConfigurationStore : IConfigurationStore, ISubSystem, IDisposable
{
private readonly IConfigurationStore inner;
private readonly IConfigurationStore partial;
public PartialConfigurationStore(IKernelInternal kernel)
{
inner = kernel.ConfigurationStore;
partial = new DefaultConfigurationStore();
partial.Init(kernel);
}
public void AddChildContainerConfiguration(string name, IConfiguration config)
{
inner.AddChildContainerConfiguration(name, config);
partial.AddChildContainerConfiguration(name, config);
}
public void AddComponentConfiguration(string key, IConfiguration config)
{
inner.AddComponentConfiguration(key, config);
partial.AddComponentConfiguration(key, config);
}
public void AddFacilityConfiguration(string key, IConfiguration config)
{
inner.AddFacilityConfiguration(key, config);
partial.AddFacilityConfiguration(key, config);
}
public void AddInstallerConfiguration(IConfiguration config)
{
inner.AddInstallerConfiguration(config);
partial.AddInstallerConfiguration(config);
}
public IConfiguration GetChildContainerConfiguration(string key)
{
return partial.GetChildContainerConfiguration(key);
}
public IConfiguration GetComponentConfiguration(string key)
{
return partial.GetComponentConfiguration(key);
}
public IConfiguration[] GetComponents()
{
return partial.GetComponents();
}
public IConfiguration[] GetConfigurationForChildContainers()
{
return partial.GetConfigurationForChildContainers();
}
public IConfiguration[] GetFacilities()
{
return partial.GetFacilities();
}
public IConfiguration GetFacilityConfiguration(string key)
{
return partial.GetFacilityConfiguration(key);
}
public IConfiguration[] GetInstallers()
{
return partial.GetInstallers();
}
public IResource GetResource(string resourceUri, IResource resource)
{
return inner.GetResource(resourceUri, resource);
}
public void Dispose()
{
Terminate();
}
public void Init(IKernelInternal kernel)
{
partial.Init(kernel);
}
public void Terminate()
{
partial.Terminate();
}
}
}