【发布时间】:2014-11-03 15:36:51
【问题描述】:
我尝试让 Unity 使用带参数的工厂方法解析类型(对象),但我无法使其正常工作。此答案answer 中描述了问题的根源。
它说我需要注册每个视图:
m_Container.RegisterType<Object, View>("View");
否则 RequestNavigate("View") 方法会失败,但我不喜欢这种方法。 我不想使用 RequestNavigate("Namespace.View") 导航,但这不起作用。
所以我试图告诉 Unity Container 如何解析视图:
this.Container.RegisterType<object>(new InjectionFactory(this.ViewObjectFactory));
private object ViewObjectFactory(IUnityContainer iUnityContainer, Type type, string name)
{
//Never called
}
但是如果使用以下参数调用容器:
this.Container.Resolve(typeof(object), "Namespace.View");
创建了一个对象并且忽略了工厂方法,我怎样才能统一调用一个类型的工厂方法(即使使用名称调用解析方法)。
【问题讨论】:
标签: c# wpf unity-container prism