我有这个问题RegisterType
。
container.RegisterType<IFoo, Foo>("Foo", new ContainerControlledLifetimeManager());
我创建的每个模块都将包含一个类似的最后一个寄存器。另一个模块将 Foo2、Foo3 实现为具体类型。
对我来说,包含寄存器类型的名称真的很有必要,因为在外部模块中会用键调用这个对象。
问题也在模块内部,在它的构造函数中需要 IFoo 作为参数(据我所知,这样做是必要的,对象是ContainerControlledLifetimeManager),当我设置函数 RequestNavigate 并尝试生成viewModel时:
public class FooViewModel
{
// here cannot create the object.
public FooViewModel(IFoo foo, ...)
{ .. }
}
它抛出:
用户代码未处理 ResolutionFailedException。依赖项解析失败,type = "System.Object",name = "FooView"。异常发生时:解决时。例外情况是: InvalidOperation - 当前类型 Prism4Demo.ModuleA.IFoo 是一个接口,无法构造。您是否缺少缺少类型?