Unityは、XML構成(別名デザインタイム構成)とプログラム構成(別名ランタイム構成)の両方をサポートします。XML構成は、Unity構成スキーマに従う必要があります。
箱から出して、XML構成は.NET構成にフックするため、app.config / web.configを使用して手動でロードしたくない場合は、構成情報をロードするために独自のConfigurationSectionクラスを作成する必要があると思います。
public class MyUnityConfigurationSection : UnityConfigurationSection
{
public string Serialize()
{
return SerializeSection(null, UnityConfigurationSection.SectionName,
ConfigurationSaveMode.Full);
}
public void LoadConfigurationFile(string fileName)
{
Deserialize(File.ReadAllText(fileName));
}
public void Deserialize(string xml)
{
using (var sr = new StringReader(xml))
using (var reader = XmlTextReader.Create(sr))
{
base.DeserializeSection(reader);
}
}
}
次に、文字列またはファイルから構成をロードできます。
string configString = "<unity xmlns=\"http://schemas.microsoft.com/practices/2010/unity\">\r\n <container>\r\n <register type=\"IEmployee\" mapTo=\"FakeEmployee\" />\r\n </container>\r\n</unity>";
var config = new MyUnityConfigurationSection();
config.Deserialize(configString);
IUnityContainer container = new UnityContainer();
container.LoadConfiguration(config);
構成アセンブリでメソッドを作成することをお勧めします。
public void Configure(IUnityContainer container)
{
// internally configure the container via XML or programmatically
}