7
ist es möglich, mit Ninject Abhängigkeiten in die WebApiConfig-Klasse zu injizieren?Ninject-Abhängigkeiten in WebApiConfig in Web-API 2 injizieren
Dies ist meine WebApiConfig-Klasse.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Services.Replace(typeof(IExceptionHandler), new ErrorHandlerMessageHandler(*NEEDS DEPENDENCY*));
}
}
Und das ist meine NinjectHttpApplication Erklärung
public class WebApiApplication : NinjectHttpApplication
{
protected override void OnApplicationStarted()
{
base.OnApplicationStarted();
GlobalConfiguration.Configure(WebApiConfig.Register);
}
protected override IKernel CreateKernel()
{
var kernel = new StandardKernel();
RegisterServices(kernel);
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
return kernel;
}
private void RegisterServices(IKernel kernel)
{
//bindings
}
}
dank tun hat mir geholfen, aber ich denke, einige Leute haben diese NinjectWebCommon-Klasse bereits, wenn sie WebAPI zu einem bestehenden MVC-Projekt hinzufügen. Ich fand, dass die folgende Zeile alles war, was ich hinzufügen musste: 'GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver (_kernel);' nach dem 'RegisterServices (_kernel)' Aufruf in der 'CreateKernel' Methode. Beachten Sie, dass dies der 'NinjectDependencyResolver' aus dem 'Ninject.Web.WebApi'-Namespace ist (eventuell muss ein separates NuGet-Paket heruntergeladen werden). Vielen Dank! – Jordan
Ich versuche immer noch herauszufinden, wie das geht. Meine NinjectWebCommon-Klasse enthält diese Zeile bereits, aber selbst wenn ich eine Eigenschaft mit dem Attribut [Inject] eingerichtet habe, wird die Abhängigkeit nicht injiziert. Irgendwelche Gedanken? –
Haben Sie Ihren Blog verschoben? Scheint, dass es nicht mehr verfügbar ist. –