Abfangen mit Ninject. Laden von IProxyRequestFactory fehlgeschlagen
Ich lerne Ninject und Interceptor zu benutzen.
Ich habe den folgenden Abfangjäger.
public class MyInterceptor:IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLine("Pre Execute: " + invocation.Request.Method.Name);
foreach (var param in invocation.Request.Arguments)
{
Console.WriteLine("param : " + param);
}
invocation.Proceed();
Console.WriteLine("Post Execute: " + invocation.Request.Method.Name);
Console.WriteLine("Returned: " + invocation.ReturnValue);
}
}
Und eine Klasse namens habenMyClass
das hat nichts als 2 einfache Methoden, virtuell, damit die Abfangjäger daran arbeiten können. (Zwei Methoden sind "Echo" und "double", die genau das tun, was ihr Name sagt.)
Ich habe meinem Projekt über NuGet Ninject, Ninject.Extensions.Interception und Ninject.Extensions.Interception.DynamicProxy hinzugefügt.
Folgendes hinzugefügtusing
Aussagen.
using Ninject;
using Ninject.Extensions.Interception.Infrastructure.Language;
using Ninject.Extensions.Interception;
Meine Hauptmethode, mit der das Bootstrapping durchgeführt wird, sieht folgendermaßen aus.
static void Main(string[] args)
{
MyClass o = null;
using (IKernel kernel = new StandardKernel())
{
kernel.Bind<MyClass>().ToSelf().Intercept().With(new MyInterceptor());
o = kernel.Get<MyClass>();
}
o.Echo("Hello World!"); // Error
o.Double(5);
}
Ich erhalte die folgende Fehlermeldung in der angegebenen Zeile.
Error loading Ninject component IProxyRequestFactory
No such component has been registered in the kernel's component container.
Suggestions:
1) If you have created a custom subclass for KernelBase, ensure that you have properly
implemented the AddComponents() method.
2) Ensure that you have not removed the component from the container via a call to RemoveAll().
3) Ensure you have not accidentally created more than one kernel..
Kann mir jemand sagen, was ich falsch mache?