Я использую DryIOC.WebAPI для разрешения моих контроллеров API.
Таким образом, конфигурация WebAPI:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.EnableCors();
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Startup.IocContainer.WithWebApi(config);
Startup.IocContainer.RegisterWebApiControllers(config);
}
}
Он отлично работает, пока я не забуду создать сопоставление в контейнере IOC. В этом случае преобразователь зависимостей не может создать экземпляр APIController с помощью DryIOC.
Когда это происходит, он возвращается к распознавателю WebAPI по умолчанию, который затем выдает ошибку «Нет конструктора по умолчанию».
Это нежелательное поведение для меня. Если разрешение DryIOC не удается, я хочу, чтобы на этом все остановилось — не было возврата к реализации по умолчанию и не было неточного сообщения об отсутствии конструктора по умолчанию. Я хочу знать, какие типы DryIOC не может разрешить, чтобы я мог это исправить.
Как я могу этого добиться?
IDependencyResolver
, которая может противоречить вашим требованиям. - person Nkosi   schedule 24.03.2016