gpt4 book ai didi

dependency-injection - 在 .NET Core 中无需配置即可自动解析具体类?

转载 作者:行者123 更新时间:2023-12-02 03:11:18 26 4
gpt4 key购买 nike

我正在将一个项目从 .NET 4.52 移植到 .NET Core。该项目之前使用 Structuremap 进行依赖注入(inject),并且在 structuremap 中您无需配置具体类型即可启用依赖注入(inject)。 .NET Core 中内置的依赖注入(inject)有什么方法可以做到这一点?

最佳答案

如果您尝试解析具体类型并从 IoC 容器注入(inject)其依赖项,那么以下扩展函数可能对您有用。这假设所有具体类型的依赖关系都可以通过容器解决。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;

namespace Microsoft.Extensions.DependencyInjection
{
public static class ServiceProviderExtensions
{
public static TService AsSelf<TService>(this IServiceProvider serviceProvider, params object[] overrides)
{
return (TService)AsSelf(serviceProvider, typeof(TService), overrides);
}
public static object AsSelf(this IServiceProvider serviceProvider, Type serviceType, params object[] overrides)
{
// ref: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.activatorutilities.createinstance?view=dotnet-plat-ext-5.0#definition
// ref: https://github.com/dotnet/runtime/blob/main/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/ActivatorUtilities.cs#L108-L118

return ActivatorUtilities.CreateInstance(serviceProvider, serviceType, overrides);
}
}
}

关于dependency-injection - 在 .NET Core 中无需配置即可自动解析具体类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39790713/

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