Ich verwende ninject in einem wcf-Webdienst, der in einem Projekt gehostet wird, das als "ASP.NET MVC 2 Empty Web Application" erstellt wurde.
Es verwendet die Referenzen für Ninject.dll v2 und Ninject.Extensions.Wcf.dll v1.
Das Markup für die Servicedatei lautet
<%@ ServiceHost
Language="C#"
Debug="true"
Service="wcf_ninject.Service1"
CodeBehind="Service1.svc.cs"
Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>
Die Datei global.asax erbt von NinjectWcfApplication
public class Global : NinjectWcfApplication
{
protected override IKernel CreateKernel()
{
return new StandardKernel(new WCFNinjectModule());
}
}
mit
public class WCFNinjectModule : NinjectModule
{
public override void Load()
{
Bind<IRepository>().To<EFRepository>();
// rest of bindings
}
}
und der einzige Konstruktor für den Dienst ist:
public Service1(IRepository repository)
{
_repo = repository;
}
Die meiste Zeit funktioniert es gut, aber von Zeit zu Zeit erhalte ich die Fehlermeldung:
"Fehler beim Aktivieren von Dienst1 Es sind mehr als eine passende Bindung vorhanden"
Aber wie gesagt, ich bin nicht in der Lage, einen Reproduktionspfad zu finden.