我正在使用 DryIOC.WebAPI 来解析我的 APIControllers。
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 容器中创建映射。在这种情况下,依赖解析器无法使用 DryIOC 创建 APIController 的实例。
发生这种情况时,它会退回到默认的 WebAPI 解析器,然后会出现“无默认构造函数”错误。
这对我来说是不受欢迎的行为。如果 DryIOC 决议失败,我希望事情停在那里 - 没有回退到默认实现,也没有关于没有默认构造函数的不准确消息。我想知道 DryIOC 无法解决的类型,所以我可以修复它。
我怎样才能做到这一点?