【发布时间】:2015-07-31 11:32:58
【问题描述】:
我正在使用 web api 2,并且有一个控制器继承自另一个控制器,该控制器覆盖了 ApiController 的 Initialize() 方法。
所以:
public class ControllerA : Controller B
然后:
public class ControllerB : ApiController
{
protected override void Initialize(HttpControllerContext controllerContext)
{
var httpContext = GetHttpContext(controllerContext.Request);
// Do some stuff
base.Initialize(controllerContext);
}
}
但是当我调试时,初始化的断点永远不会被命中。其他断点命中,但不在此方法上。有什么想法吗?
【问题讨论】:
-
Controller B可能应该是一个词,但我怀疑这是造成它的原因 - 可能是一个错字。 -
为什么不简单地使用
constructor而不是使用Initialize方法?构造函数必须被调用。 -
向ControllerB发出请求会被调用吗?
-
我知道在 ASP.Net 中,global.asax 中的一些覆盖不会到达断点,因为它在这个过程中为时过早。您是否尝试过在 Visual Studio 中写入调试控制台以查看它是否实际运行,但只是没有到达断点?
-
@Orphid 是的,这是一个错字 - 我将我的初始化添加到 controllerA 并直接从 ApiController 继承,但它仍然不会命中。这让我发疯了。
标签: c# .net asp.net-web-api asp.net-web-api2