gpt4 book ai didi

c# - .NET Core 控制台应用依赖注入(inject)设置

转载 作者:行者123 更新时间:2023-12-05 04:32:12 24 4
gpt4 key购买 nike

如何向 DI 添加更多服务?例如,当我尝试添加另一个服务时,现在只有 ConvertService 是 DI

services.AddTransient<Authorization>();

它没有效果,我无法为其他类提供 DI 授权服务。如果我想添加更多要添加到 DI 的服务,该如何处理。此外,我只能将 IHttpCLient 注入(inject) ConvertService

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.IO;
using System.Threading.Tasks;

namespace ProtocolConvert
{
class Program
{
private static IConfigurationRoot Configuration { get; set; }
static async Task Main(string[] args)
{

IConfigurationBuilder builder = new ConfigurationBuilder()

.AddJsonFile("appsettings.json")
.AddEnvironmentVariables();
Configuration = builder.Build();

var host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
services.AddHttpClient("GitHub", httpClient =>
{
httpClient.BaseAddress = new Uri(Configuration.GetSection("tokenUrl").Value);
httpClient.DefaultRequestHeaders.Add(
"X-API-ID", Configuration.GetSection("X-API-ID").Value);
httpClient.DefaultRequestHeaders.Add(
"X-API-SECRET", Configuration.GetSection("X-API-SECRET").Value);
});

services.AddTransient<ConvertService>();

}).Build();

var svc = ActivatorUtilities.CreateInstance<ConvertService>(host.Services);

await svc.ConvertToCsv();
}



}
}

最佳答案

我不太确定您实现的目的。但我认为你应该使用 GetService<ConvertService>()而不是创建服务类的新实例。

你可以在这里看到一个例子https://siderite.dev/blog/creating-console-app-with-dependency-injection-in-/

希望对你有帮助

关于c# - .NET Core 控制台应用依赖注入(inject)设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71704685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com