我有一个自我托管的 .NET Core Console Application .
Web显示ASP.NET Core的示例,但我没有Web服务器 . 只是一个简单的命令行应用程序
是否可以为控制台应用程序执行此类操作?
public static void Main(string[] args)
{
// I don't want a WebHostBuilder. Just a command line
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
我想在ASP.NET Core中使用Startup.cs,但是在控制台上 .
怎么样?
4 回答
所有
.NET Core
应用程序都由精心设计的独立库和包组成,您可以在任何类型的应用程序中自由引用和使用它们 . 事实上,一个Asp.net core
应用程序预先配置为引用许多这些库并公开一个http endpoints .但是,如果它是指南:http://andrewlock.net/using-dependency-injection-in-a-net-core-console-application/
所以我遇到了这个解决方案,受到了接受的答案的启发:
Program.cs中
Startup.cs
appsettings.json
MyService.cs
IMyService.cs
另一种方法是使用
HostBuilder
来自Microsoft.Extensions.Hosting
包 .是的 . ASP.NET核心应用程序既可以自我托管 - 如在您的示例中 - 也可以托管在Web服务器(如IIS)中 . 在.NET Core中,所有应用都是控制台应用 .