是否可以使用 StructureMap 扫描程序集以了解未实现接口的具体类?我对 StructureMap 相当陌生,所以不确定这是否应该是显而易见的事情。
对于上下文,以下是我正在使用的课程的亮点。UserController
依赖于一个实例,UserManager
该实例依赖于一个实例IUserRepository
。
public interface IUserRepository { }
public class UserRepository { }
public class UserManager
{
public UserManager(IUserRepository repository) { }
}
public class UserController
{
public UserController(UserManager manager) { }
}
这是我在Startup.ConfigureServices
方法中用于扫描 DI 的代码:
// Setup dependencies using StructureMap
var container = new Container(x =>
{
x.Scan(s =>
{
s.AssemblyContainingType<UserRepository>();
s.WithDefaultConventions();
});
});
container.Populate(services);
问题是我收到以下错误:
尝试激活“UserController”时无法解析“UserManager”类型的服务。
如果我添加以下行,Startup.ConfigureServices
那么它可以工作,但我正在寻找一种不需要我为每个经理都设置一行的解决方案。我一直认为 StructureMap 程序集扫描可以解决这个问题,但我也对其他解决方案持开放态度。
services.AddTransient<UserManager>();