Я использую замок Виндзор для IoC, и имеют конфигурацию, имевшихся в web.config
/app.config
, используя следующий завод:Виндзорский замок и его собственный файл конфигурации
public static TYPE Factory(string component)
{
var windsorContainer = new WindsorContainer(new XmlInterpreter());
var service = windsorContainer.Resolve<TYPE>(component);
if (service == null)
throw new ArgumentNullException(string.Format("Unable to find container {0}", component));
return service;
}
и мой web.config
глядя, как это:
<configuration>
<configSections>
<section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor"/>
</configSections>
<castle>
<components>
<component id="Data" service="Data.IData, Data" type="Data.DataService, Data"/>
</components>
</castle>
<appSettings>.......
Что хорошо работает, но я хотел бы разместить конфигурацию для Castle Windsor в файле под названием castle.config
. Как мне это сделать?
Обратите внимание, что вы создаете новый контейнер каждый раз, вам нужно разрешить компонент. Мало того, что ** очень ** неэффективен, но вы также теряете такие функции, как управление стилем жизни. Вместо этого создайте один контейнер для каждого приложения. –
Пожалуйста, скажите, что вы вызываете этот метод 'Factory' только один раз за время жизни вашего приложения ... –
Он называется только частью конструктора службы WCF, так ли это? – Coppermill