Настройка экземпляров в контейнере Unity, настроенном в App.Config во время выполнения
У меня есть специфическая проблема конфигурации.
<configuration>
<configSections>
<section name="custom" type="ConfigurationSample.CustomConfigurationSection, ConfigurationSample"/>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>
<custom>
<customConfigurations>
<configuration id="CAT1">
<name>Tom</name>
<address type="rent">
<area>Misissipi</area>
</address>
<conifugration/>
<configuration id="Mouse1">
<name>Jerry</name>
<address type="own">
<area>Seatle</area>
</address>
<conifugration/>
<customConfigurations>
</custom>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<alias alias="IAnimal" type="MyApp.IAnimal, MyApp" />
<alias alias="CAT" type="MyApp.CAT, MyApp" />
<alias alias="Mouse" type="MyApp.Mouse, MyApp" />
<container>
<!-- should register CAT instance with name CAT1 at runtime and mapto IAnimal !-->
<!-- should register Mouse with name Mouse1 at runtime and mapto IAnimal !-->
</container>
</unity>
</configuration>
Это мой app.config. Все, что я ищу для регистрации экземпляров во время выполнения в контейнере Unity при чтении пользовательского раздела конфигурации, начиная с конфигурации CAT класса CAT в его конструкторе.
Мои занятия:
public interface IAnimal
{
public string Name {get;set}
pubic bool IsLiving();
}
public class Mouse
{
MouseConfig config;
public Mouse(IAnimalConfig config)
{
this.config=config;
}
public string Name {get;set}
pubic bool IsLiving(){
//do something with config
}
}
public class Cat
{
CATConfig config;
public CAT(IAnimalConfig config)
{
this.config=config;
}
public string Name {get;set}
pubic bool IsLiving(){
//do something with config
}
}
Я надеюсь, вы понимаете, куда я веду. Мне нужно предоставить объекты конфигурации в качестве параметра для производных классов. Поэтому, основываясь на моем customconfig, я хочу зарегистрировать экземпляры в контейнере Unity. Так что я могу работать с этими экземплярами в моем приложении. так как я уже знаю их типы и имена тех экземпляров, которые я могу разрешить из контейнера.
Пожалуйста, дайте мне знать, если я должен добавить что-нибудь еще. Спасибо