统一容器的配置部分:
<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>
这些类型在App.xaml.cs
文件中注册:
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
方法的参数传递
Ps在 StackOverflow上已经有一个关于相同问题的类似问题。但是,答案并没有为上述实例化问题提供解决方案。