Раздел конфигурации для контейнера единства:
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<container>
<register type="IProductInfo, Core.Interface" mapTo="Classes.ProductInfo, Core">
<constructor>
<param name="Name" value="Product Name" />
<param name="Version" value="V1.2.65.30865" />
</constructor>
</register>
</container>
The types are registered in the App.xaml.cs
file:
public partial class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
UnityConfigurationSection section = (UnityConfigurationSection)config.GetSection("unity");
section?.Configure(containerRegistry.GetContainer());
}
}
Однако из-за абстракции контейнера, встроенной в версию PRISM 7, экземпляр контейнера не соответствует требуемому параметру в методе Configure
. Компилятор выдает следующую ошибку:
Ошибка CS1503. Аргумент 1: невозможно преобразовать из «Unity.IUnityContainer» в «Microsoft.Practices.Unity.IUnityContainer».
Вопрос. Как получить правильный экземпляр контейнера для передачи в качестве параметра метода Configure
P.S. Подобный вопрос уже есть по той же проблеме в StackOverflow. Однако ответ не дает решения проблемы создания экземпляров, описанной выше.