Ich benutze Castle Windsor für IoC, und habe die Konfiguration in der web.config
/app.config
, mit der folgenden Fabrik:
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;
}
und mein web.config
Sieht so aus:
<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>.......
Das funktioniert gut, aber ich möchte die Konfiguration für Castle Windsor in eine Datei namens castle.config
. Wie mache ich das?
Antworten:
4 für die Antwort № 1WindsorContainer akzeptiert den Namen der Konfigurationsdatei als Konstruktionsparameter:
Öffentlicher WindsorContainer (Zeichenfolge xmlFile)
Zusammenfassung: Initialisiert eine neue Instanz von der Castle.Windsor.WindsorContainer Klasse, die eine XML-Datei zum Konfigurieren verwendet es. Entspricht der Verwendung von neuen WindsorContainer (neu XmlInterpreter (xmlFile))
Ihre castle.config-Datei würde dann so aussehen:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<components> ...