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'罰款。創建兩個乾淨的項目並進行測試可能會有所幫助,以確保錯誤在您身邊重複。 –