当你创建一个常规的。NET 5或6 API项目,您可以获得一些基本类,例如
Program.cs
和
Startup.cs
.我想在一个类项目中复制它,因为我想能够为依赖注入配置我的服务,但我不想在我的项目中使用任何控制器或HTTP。举个例子,假设我想创建一个。NET 6项目使用最小API/托管,我想检查目录中的文件更改:
程序反恐精英
static async Task Main(string[] args)
{
await CreateHostBuilder(args).Build().RunAsync();
}
static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((_, services) => ConfigureServices(services));
static void ConfigureServices(IServiceCollection services)
{
services.AddTranscient<IFileListener, FileListener>();
}
这可能是一个很好的起点,与
创业。反恐精英
在API项目中。
在我的内心
FileListener
类,我想调用一个方法,该方法侦听文件夹中的文件更改。就这么定了
StartListening()
.我该怎么称呼这种方法呢?在某个时刻,我想我需要做一些事情,比如:
var fileListenerService = ((IServiceCollection)services).BuildServiceProvider().GetService<IListener>();
await fileListenerService.StartListening();
但是在哪里呢?里面
Main
方法在…内
ConfigureServices
? 其他地方?
也许我看得不对,但本质上我只需要调用一个方法,让它运行该方法,直到应用程序关闭。