我们在一些旧项目中使用 StructureMap,我们尝试使用默认的依赖注入迁移到 .NET 6。这是我们要迁移的 StructureMap 片段。
container.Configure(config =>
{
config.For<IBookingApiClient>().Use(new BookingApiClient(
new CorrelationHttpClient(
container.GetInstance<HttpClient>("BookingApi"),
container.GetInstance<ICorrelationIdReader>())
)).Transient();
});
这是我们目前在 ASP.NET Core 6 Web API 中拥有的内容,但我们无法弄清楚我们如何获得
HttpClient
和ICorrelationIdReader
,因为我们还没有构建服务,因为我们仍在构建吗?
builder.Services.AddHttpClient("BookingApi", client =>
{
client.BaseAddress = new Uri(settingsReader.GetRequiredSettingValue("BookingApiClientUrl"));
});
builder.Services.AddTransient<IBookingApiClient>(
new BookingApiClient(
new CorrelationHttpClient(?,?)));