我想将Autofac
集成到我的API中。解决方案分为多个项目,以便所有内容保持分离。我已经像这样设置了我的配置服务:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
// Add framework services.
...
...
// Autofac
var builder = new ContainerBuilder();
builder.RegisterType<RouteRepository>().As<IRouteRepository>();
builder.Populate(services);
ApplicationContainer = builder.Build();
return new AutofacServiceProvider(ApplicationContainer);
}
但是现在集成了此代码,我的 API 将不再启动。如果我在调试模式下启动它,则不会收到任何错误,但也不会收到响应。
API 登陆路线非常简单:
public IActionResult GetIndex()
{
return Ok("You are seeing this because controller is working!");
}
此外,可能与问题相关的是RouteRepository
将一个变量作为构造函数中的参数,我不知道在哪里可以定义将传递的内容?默认情况下没有配置文件。
如果你说你的RouteRepository
有一个依赖项,那么你必须通知Autofac
容器如何解决这个问题:
// singletone
builder.RegisterInstance(new TaskRepository())
.As<ITaskRepository>();
// or instance based creation
builder.Register(c => new LogManager(DateTime.Now))
.As<ILogger>();
或者Autofac
无法解析您的类型。