1

ASP.NET MVC 5 を使用しています。AutoFac は初めてです。私はたくさんのクラスを持っていて、私がしなければならない各クラスのために、

builder.RegisterType<AuthenticationService>().As<IAuthenticationService>();
builder.RegisterType<IAuthenticationRepositry>().As<AuthenticationRepositry>();
...............................................................................
...............................................................................

各タイプの登録は時間がかかり、簡単に忘れてしまいます。コンポーネントを AutoFac に自動的に登録する方法はありますか?

4

2 に答える 2

1

XXXService クラスと XXXRepository クラスは、SOLIDの原則 (SRP、OCP、ISP など) に違反している可能性があります。ここここで学習できるように、一般的な抽象化の背後にビジネス ロジックとリポジトリ ロジックを隠してみてください。これにより、これらのクラスに分野横断的な問題を簡単に追加でき、各グループを 1 行のコードで登録できます。

builder.RegisterAssemblyTypes(assemblies)
    .As(t => t.GetInterfaces()
    .Where(a => a.IsClosedTypeOf(typeof(ICommandHandler<>))));

builder.RegisterAssemblyTypes(assemblies)
    .As(t => t.GetInterfaces()
    .Where(a => a.IsClosedTypeOf(typeof(IQueryHandler<>))));

builder.RegisterAssemblyTypes(assemblies)
    .As(t => t.GetInterfaces()
    .Where(a => a.IsClosedTypeOf(typeof(IRepository<>))));
于 2014-03-24T10:32:09.210 に答える