0

このコードを DI autofac から Ninject 3.0.0.15 に書き直そうとしています。

メソッドに問題があります: AsImplementedInterfaces(...)およびAsClosedTypesOf(...)

builder.RegisterAssemblyTypes(typeof(CategoryRepository).Assembly)
   .Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces()
   .InstancePerHttpRequest();

Assembly services = Assembly.Load("EFMVC.Domain");

builder.RegisterAssemblyTypes(services)
    .AsClosedTypesOf(typeof(ICommandHandler<>)).InstancePerHttpRequest();

builder.RegisterAssemblyTypes(services);

このコードは、ASP.NET MVC 4 および EF 4.3 Code First、Windows Azure、およびアーキテクチャ プラクティスを示すための非常に優れたデモ Web アプリの一部です: EFMVC

回答ありがとうございます。

4

1 に答える 1

3

Ninject.Extensions.ConventionsV3.0.0を使用します

私はこれがあなたが探しているものだと思います:

kernel.Bind(x => x
      .FromAssemblyContaining<CategoryRepository>()
      .SelectAllClasses().EndingWith("Repository")
      .BindAllInterfaces()
      .Configure(b => b.InRequestScope());

kernel.Bind(x => x
      .From("EFMVC.Domain")
      .SelectAllClasses().InheritedFromAny(typeof(ICommandHandler<>))
      .BindAllInterfaces()
      .Configure(b => b.InRequestScope());
于 2012-04-12T14:26:02.730 に答える