Autofac寄存器组件类型

Iva*_*ono 19 c# castle-windsor autofac asp.net-web-api

在Castle中,我曾经做过以下操作来注册来自不同程序集的类型:

Classes.FromAssemblyNamed("MyServer.DAL")
       .Where(type => type.Name.EndsWith("Repository"))
       .WithServiceAllInterfaces()
       .LifestylePerWebRequest(),
Run Code Online (Sandbox Code Playgroud)

在Autofac中,我将上面的代码更改为:

builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
       .Where(t => t.Name.EndsWith("Repository"))
       .InstancePerRequest();
Run Code Online (Sandbox Code Playgroud)

这是对的吗?

Iva*_*ono 26

这是正确的方法:

builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
       .Where(t => t.Name.EndsWith("Repository"))
       .AsImplementedInterfaces()
       .InstancePerRequest();
Run Code Online (Sandbox Code Playgroud)