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

Hen*_*ema 3 c# dependency-injection dnx asp.net-core

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

public Program(IApplicationEnvironment env)
{
    if (env == null)
    {
        // env is null.
        throw new ArgumentNullException(nameof(env));
    }
}
Run Code Online (Sandbox Code Playgroud)

Hen*_*ema 5

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

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

public Program()
{
    var env = PlatformServices.Default.Application;
}
Run Code Online (Sandbox Code Playgroud)

PlatformServices班住在Microsoft.Extensions.PlatformAbstractions命名空间.

喜欢的类型ILibraryExporterICompilerOptionsProvider现在通过暴露CompilationServices在类Microsoft.Extensions.CompilationAbstractions的命名空间.

>参考