dotnet核心autofac和json配置可以在控制台应用程序中一起工作

时间:2017-03-22 10:55:31

标签: c# asp.net-core .net-core autofac

我一直试图在我的dependency injection核心控制台应用中使用.net并使用appsettings.json file

但是我找不到两个例子。

以下是我必须在Main()

内设置的方法
private static IContainer SetupDependencyInjection()
{
        var builder2 = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json");

        var builder = new ContainerBuilder();

        builder.RegisterAssemblyTypes(
            typeof(Program).GetTypeInfo().Assembly // Console
        )
        .AsSelf()
        .AsImplementedInterfaces();

        var container = builder.Build();

        return container;
    }

你可以看到我有构建配置文件的builder2变量但是我需要构建器变量用于依赖注入。

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:2)

Autofac 提供ConfigurationModule课程,可以使用Iconfiguration

提供的ConfigurationBuilder进行构建
// Add the configuration to the ConfigurationBuilder.
var config = new ConfigurationBuilder();
config.AddJsonFile("autofac.json");

// Register the ConfigurationModule with Autofac.
var module = new ConfigurationModule(config.Build());
var builder = new ContainerBuilder();
builder.RegisterModule(module);

// configure whatever you want at runtime the ContainerBuilder
builder.RegisterType<Foo>().As<IFoo>(); 

// build the container 
IContainer container = builder.Build(); 

在这种情况下,您将在 autofac.json 文件中配置两个注册,并在您的代码中配置注册。

有关详细信息,请参阅Autofac documentation JSON/XML Configuration