MapHttpRoute可以嵌套到ApiController类吗?如果是,那么RouteTemplate会实现什么目标?
嵌套控制器示例:
public class whatever
{
public class NestedController : ApiController
{
[HttpGet]
public object five()
{
return 5;
}
}
}
我尝试过使用
GET ApiRoute/whatever+nested/five
as typeof(whatever.NestedController)报告任何+ NestedController,但我得到
找不到与控制器匹配的类型
答案 0 :(得分:0)
似乎路由引擎只查找具体类。它们所处的装配或它们所处的命名空间并不重要,但它们不能嵌套在另一个类中,它们不能是抽象的。
一个好处(虽然它是一个延伸)是你可以"隐藏" DLL中的控制器并在Web应用程序中激活它们,如下所示:
DLL:
public class Wrapper { public class MyController : ApiController { /*code goes here*/ } }
网络应用程序:
public class MyController : Wrapper.MyController { }
所有这一切,我不推荐它。最好使用设计的东西,因为您可能会面临打开安全漏洞或使应用程序易受API更新的影响。