【发布时间】:2012-02-21 15:22:39
【问题描述】:
我将 Unity 与 Asp.net MVC 3 应用程序一起使用。这是在 Application_Start 中运行的一些代码...
UnityContainer container = new UnityContainer();
new UnityMappings(container).RegisterTypes();
DependencyResolver.SetResolver(new UnityServiceLocator(container));
控制器像这样在 UnityMappings 实例中注册...
IEnumerable<Type> controllerTypes = from t in Assembly.GetExecutingAssembly().GetTypes()
where typeof (IController).IsAssignableFrom(t)
select t;
foreach (Type t in controllerTypes)
{
container.RegisterType(t);
}
当我请求一个页面时,我收到以下错误...(最后一个特定于所请求的视图。)
尝试获取类型实例时发生激活错误 IControllerFactory,键“”
尝试获取类型实例时发生激活错误 IControllerActivator,键“”
尝试获取类型实例时发生激活错误 IViewPageActivator,键“”
尝试获取类型实例时发生激活错误 ModelMetadataProvider,键“”
然后奇怪的是,我可以点击所有异常,页面工作得非常好!所有其他依赖项都解决得很好。
这不是 Visual Studio 问题,因为它在不同机器的不同实例中执行此操作。我不得不关闭所有异常的中断,这样我才能完成任何事情。
有什么想法吗?
【问题讨论】:
-
我再次发这个问题是不是犯了罪?
-
不是,只是没必要这么做。如果你从 3 个月前就没有解决这个问题,也许你走错了路?
-
我已经三个月没有在这个网站上工作了。我刚刚开始在休息后再次处理它,并且只有在 Visual Studio 中打开异常时问题才可见。无论如何,你应该建议我走错了路,同时建议我去寻找以前试图帮助我的同一个人的答案,这可能有点讽刺。 ;)
-
对不起。我不是故意要冒犯你的。祝你好运!
标签: asp.net-mvc-3 unity-container