繁体   English   中英

带有Autofac DI的.NET Core

[英].NET Core with Autofac DI

我想将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一个变量作为参数,并且我不知道在哪里可以定义要传递的内容? 默认情况下没有配置文件。

如果您说自己的RouteRepository具有一个依赖RouteRepository ,则必须通知Autofac容器如何解决该依赖关系:

// singletone
builder.RegisterInstance(new TaskRepository())
   .As<ITaskRepository>();
// or instance based creation
builder.Register(c => new LogManager(DateTime.Now))
   .As<ILogger>();

否则Autofac无法解析您的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM