![](/img/trans.png)
[英]ASP.NET Core 2.0 Configuring Authentication with Services.Configure
[英]Configuring services for ASP.NET core and .NET core CLT
我想使用相同的代碼並希望配置為 ASP.NET 內核和 .net 內核命令行工具設置 DI。
我了解如何使用 Startup.cs 為 ASP.NET 內核配置服務。 我了解如何在命令行工具中構建ServiceCollection
,盡管除了顯式訪問它之外,我不確定如何使用它,而且我認為我的 CLT 必須自己管理服務集合(與提供服務的 ASP.NET 不同集合和構造函數注入)。
我的 web 和 CLT 項目可以使用相同的擴展方法來注冊我的服務嗎? Startup.ConfigureServices
會將它收到的ServiceCollection
和 Configuration 傳遞給我的擴展方法。 CLT 我可以傳遞 CLT 管理的ServiceCollection
,但它可以從appsettings.json
文件中獲得相同類型的配置嗎?
在 CLT 中,我需要一些掘金:
Microsoft.Extensions.Cofiguration.Json
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.Hosting
private static ServiceCollection _services = new ServiceCollection();
public static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
//TODO: .SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
builder.Build();
IConfigurationBuilder configBuilder =
new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
ServiceProvider provider = ConfigureServices(_services, configBuilder.Build()).BuildServiceProvider(); //TODO: dispose
_repo = provider.GetService<IRepository>();
provider.Dispose();
我可能會將 CLT 的一個屬性設置為提供者,但是我不確定如何確保它被處置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.