2010-11-30 16 views
0

Ich verwende Unity2 mit XML-Konfiguration. Es verfügt über die nette Funktion zum Angeben von Namespaces und Assemblies in der XML-Konfiguration, für die die automatische Typnachschlage ausgeführt wird, sodass Sie nicht immer den vollständigen Namen angeben oder einen Alias ​​erstellen müssen.Unity2.0 - Ist es möglich, Assemblys und Namespaces für die Typsuche programmatisch anzugeben?

Können Assemblys und Namespaces für die automatische Typsuche programmatisch angegeben werden, ohne dass sie explizit in der XML-Konfiguration aufgeführt sind? Mein Ziel ist es, die XML-Konfiguration für die Administratoren meiner Anwendung zu vereinfachen. In den Containerregistrierungen werden fast immer Typen aus zwei oder drei Namespaces verwendet. Daher möchte ich, dass diese Namespaces automatisch in die Suche einbezogen werden.

Antwort

0

Es ist nichts explizit eingebaut, um dies zu unterstützen.

Eine Option würde einige weitere Schritte in Ihrem Code erfordern. statt nur container.LoadConfiguration() aufrufe, werden Sie stattdessen explizit den Konfigurationsabschnitt greifen:

var section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); 

Dann Sie in die Namensräume oder Baugruppen Eigenschaften auf dem Abschnitt gehen würden, und neuen NamespaceElement oder AssemblyElement Objekte hinzufügen Zeigen auf die "Standard" Namespaces und Assemblies. Dann Sie wenden den aktualisierten Konfigurationsabschnitt auf den Container an. So etwas wie das:

section.Namespaces.Add(new NamespaceElement() { Name = "my.standard.namespace" }); 
container.LoadConfiguration(section); 

Ich habe das eigentlich nicht versucht, :-), aber es sollte funktionieren.

+0

Ich habe diesen genauen Ansatz bereits versucht, aber leider wird beim Aufruf der Add() - Methode eine Ausnahme ausgelöst. Es besagt, dass die Konfiguration schreibgeschützt ist. –

+0

Nun, verdammt, Entschuldigung. –