Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制台应用程序中的.Net核心依赖项注入_C#_Asp.net Core_.net Core_Console Application - Fatal编程技术网

C# 控制台应用程序中的.Net核心依赖项注入

C# 控制台应用程序中的.Net核心依赖项注入,c#,asp.net-core,.net-core,console-application,C#,Asp.net Core,.net Core,Console Application,我正在尝试在.NET核心控制台应用程序中使用依赖项注入。 有很多关于它的文章,但没有找到一篇可以解决我的问题。 我正在尝试使用源于aspnet核心web应用程序的服务,这就是我拥有WebHost的原因 我的主要问题是创建一个我自己的类的实例,所有依赖项似乎都能工作,我的控制台应用程序启动了 我的程序类中有以下代码: static void Main(string[] args) { var host = WebHost.CreateDefaultBuilder(a

我正在尝试在.NET核心控制台应用程序中使用依赖项注入。 有很多关于它的文章,但没有找到一篇可以解决我的问题。 我正在尝试使用源于aspnet核心web应用程序的服务,这就是我拥有WebHost的原因

我的主要问题是创建一个我自己的类的实例,所有依赖项似乎都能工作,我的控制台应用程序启动了

我的程序类中有以下代码:

static void Main(string[] args)
{            
    var host = WebHost.CreateDefaultBuilder(args)
        .UseKestrel(options => options.AddServerHeader = false)
        .UseStartup<Startup>()
        .Build();

    var services = new ServiceCollection().AddLogging();            
    var container = new Container();           
    var serviceProvider = container.GetInstance<IServiceProvider>();
我不知道您的设置中的“容器”是什么,但您通常通过调用
servicecolection
来创建服务提供商

var provider = services.BuildServiceProvider();

var instance = provider.GetService<App>();
var provider=services.BuildServiceProvider();
var instance=provider.GetService();

不过,您需要先向服务集合注册
App
和您想要的任何
IProductService

在此场景中,您甚至不需要创建自己的
ServiceCollection
ServiceProvider
,您只需使用您已经拥有的
IWebHost
属性即可拥有:

var app = host.Services.GetService<App>();
var-app=host.Services.GetService();
WebHost.CreateDefaultBuilder
已经添加了日志服务,因此也不需要这样做

注意:我假设您已经在
Startup.ConfigureServices
中注册了
App
IProductService
类型

var app = host.Services.GetService<App>();