【发布时间】:2010-10-29 18:20:30
【问题描述】:
我仍在尝试使用 StructureMap 解决问题,我遇到的问题之一是当将空控制器类型传递给它时,我的 Controller Factory 类爆炸了。这只发生在应用程序第一次构建时,之后每个后续构建都可以正常工作。即使我关闭 Visual Studio 并重新打开项目(我没有在 IIS 中运行它)。几乎就像是在进行某种缓存。这是控制器类的样子:
public class IocControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(Type controllerType)
{
try
{
return (Controller)ObjectFactory.GetInstance(controllerType);
}
catch (StructureMapException)
{
System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw;
}
}
}
可能出了什么问题?我需要注册每个控制器吗?谢谢。
【问题讨论】:
-
传递给它的空控制器是什么意思?
-
我的意思是控制器类型的空引用被传递给 GetControllerInstance()。我不明白的是那个空引用来自哪里。我猜 MVC 框架传递了一个空控制器实例?我最初以为它与 StructureMap 有关,但看起来并非如此。我想我可以在方法中检查 null,但我宁愿弄清楚为什么它正在做它正在做的事情。最奇怪的是,它发生在我打开项目并在重新启动后第一次在 Visual Studio 中构建它之后。之后它每次都有效。
-
我遇到了完全相同的问题。有人对此有解决方案吗?
-
我还没有弄清楚最初的问题主要是因为它很难调试。我必须重新启动机器并重新打开项目才能真正复制问题。我最终做的只是检查一个空控制器实例。它似乎没有破坏任何东西,但肯定有助于了解问题发生的原因。
标签: model-view-controller null controller structuremap