J'utilise le château de Windsor pour IoC et ont la configuration tenue dans le web.config
/app.config
, en utilisant l'usine suivante:château de Windsor et son propre fichier de configuration
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;
}
et mon web.config
qui ressemble à ceci:
<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>.......
Ce qui fonctionne bien, mais je voudrais placer la configuration de Castle Windsor dans un fichier appelé castle.config
. Comment puis-je faire cela?
Notez que vous créez un nouveau conteneur à chaque fois vous devez résoudre un composant. Non seulement c'est ** très ** inefficace, mais vous perdez aussi des fonctionnalités telles que la gestion du style de vie. Au lieu de cela, créez un seul conteneur par application. –
S'il vous plaît dites-moi que vous appelez cette méthode 'Factory' juste une fois par vie de votre application ... –
Il est seulement appelé comme faisant partie du constructeur d'un service WCF, n'est-ce pas? – Coppermill