0
延伸CustomApiController时相匹配的控制器名称我有2个项目一个C#溶液:没有类型被发现从外部DLL
- 库DLL
- web应用(网络API)
在第一个项目我已经延长了ApiController类以自定义一些行为,我的目标是创建其他项目时,通过简单地添加到它的引用,提高我的工作效率使用该DLL。 我做的代码是一样的东西:
public class CustomController : ApiController
{
//add some properties and private/protected helping methods
public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
//customize some initialization before processing request.
}
}
第二个项目是一个虚拟项目来测试,如果第一个作品,我添加了第一个项目的引用(DLL库)
public class EmptyController : CustomController
{
[HttpGet]
public string Home()
{
return "whatever.";
}
}
而且配置文件:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "get", id = RouteParameter.Optional }
);
现在,当我运行的第二个项目,它启动,但是当我尝试访问控制器(/ API /空/家庭)我得到一个消息
“无类型发现控制器名称空匹配”
我试图从第一个项目到Web项目复制CustomController类,它的工作完美。但是当我将它移回到dll项目时,又得到了同样的错误。
我试图改变配置文件中的IAssembliesResolver服务,事情是,该dll被加载,不知道为什么它没有看到控制器虽然。 有什么想法在这里可能会出错?
@IlyaChumakov不认为这是一个重复的,这个问题是MVC与.net核心,而我即将与旧的.NET Framework(非核心)的WebAPI,也是一个问题是关于在外部类访问路线,在我的情况下,外部类不包含路由,但继承它的类不分配给路由。 –
我的错,对不起。 –
FYI:我无法重现此错误。从另一个DLL继承控制器工作只是最新的'Microsoft.AspNet.WebApi“版本=” 5.2.3'罚款。创建两个干净的项目并进行测试可能会有所帮助,以确保错误在您身边重复。 –