运行时服务不再注入DNX控制台应用程序(RC1)

时间:2015-10-27 08:37:48

标签: c# dependency-injection asp.net-core dnx

我曾经能够将IApplicationEnvironment之类的运行时服务注入到DNX控制台应用程序的Pogram类的构造函数中。但是,使用RC1的最新CI版本,服务不再被注入:

public Program(IApplicationEnvironment env)
{
    if (env == null)
    {
        // env is null.
        throw new ArgumentNullException(nameof(env));
    }
}

1 个答案:

答案 0 :(得分:5)

DNX平台希望与常规Program.Main入口点兼容。因此,他们将依赖注入删除到Program类。

您可以使用新的PlatformServices类来提供对运行时服务的访问:

public Program()
{
    var env = PlatformServices.Default.Application;
}

PlatformServices类位于Microsoft.Extensions.PlatformAbstractions命名空间中。

ILibraryExporterICompilerOptionsProvider等类型现在通过Microsoft.Extensions.CompilationAbstractions命名空间中的CompilationServices类公开。

> Reference