Wpf Prism 7.1中的模块注册
在Prism 7.1中,IModule接口已从版本6.3更改,现在公开了两种方法RegisterTypes(IContainerRegistry containerRegistry)和OnInitialized(IContainerProvider containerProvider)。我请求原谅,但我无法理解如何注册模块中实现的视图。这可能太简单了,我看不出这个问题的解决办法。你能给我举个例子让我明白我该怎么做吗?无论我在哪里查找,我都只找到了关于6.3版的示例,我对此非常了解 这可能太简单了,我看不出这个问题的解决办法Wpf Prism 7.1中的模块注册,wpf,prism,Wpf,Prism,在Prism 7.1中,IModule接口已从版本6.3更改,现在公开了两种方法RegisterTypes(IContainerRegistry containerRegistry)和OnInitialized(IContainerProvider containerProvider)。我请求原谅,但我无法理解如何注册模块中实现的视图。这可能太简单了,我看不出这个问题的解决办法。你能给我举个例子让我明白我该怎么做吗?无论我在哪里查找,我都只找到了关于6.3版的示例,我对此非常了解 这可能太简单了
只需使用
RegisterTypes
——注册视图就是注册类型。Prism 7.X在DI容器周围引入了一个抽象。原因有很多,但最重要的两个是:
public class ModuleA
{
private IUnityContainer _container { get; }
public ModuleA(IUnityContainer container)
{
_container = container;
}
public void Initialize()
{
// register stuff
_container.RegisterViewForNavigation<ViewA>();
// Setup Event listeners etc...
var ea = _container.Resolve<IEventAggregator>();
}
}
公共类模块a
{
私有IUnityContainer_容器{get;}
公共模块A(IUnityContainer容器)
{
_容器=容器;
}
公共无效初始化()
{
//登记资料
_container.RegisterServiceWForNavigation();
//设置事件侦听器等。。。
var ea=_container.Resolve();
}
}
我们会将此更新为:
public class ModuleA
{
public void OnInitialized(IContainerProvider containerProvider)
{
// Setup Event listeners etc...
var ea = containerProvider.Resolve<IEventAggregator>();
}
public void RegisterTypes(IContainerRegistry containerRegistry)
{
// register stuff
containerRegistry.RegisterForNavigation<ViewA>();
}
}
公共类模块a
{
初始公共无效(IContainerProvider-containerProvider)
{
//设置事件侦听器等。。。
var ea=containerProvider.Resolve();
}
公共无效注册表类型(IContainerRegistry containerRegistry)
{
//登记资料
containerRegistry.RegisterForNavigation();
}
}