Да, в мире IoC большинство инструментов (Spring.Net, Castle Windsor, даже LinFu) имеют методы, которые могут позаботиться об этом за вас, поэтому вы определяете его один в конфигурации и каждый раз, когда получаете копию контейнер или что-то еще) он поставляется предварительно настроенным.
Вы можете обернуть свой «контейнер»
IWindsorContainer _ConfiguredContainer = null;
public IWindsorContainer GetContainer()
{
if (LoggedIn == false)
throw new InvalidOperationException("Cannot be called before a user logs in");
if (_ConfiguredContainer == null)
{
_ConfiguredContainer = new WindsorContainer(new XmlInterpreter());
// Do your 'extra' config here.
_ConfiguredContainer.AddComponentWithProperties(/*blah blah blah*/);
}
return _ConfiguredContainer;
}