且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

替换ASP.NET Core内置DI容器中的服务注册?

更新时间:2023-02-15 23:25:25

使用 Replace(IServiceCollection,ServiceDescriptor) 方法.extensions.servicecollectiondescriptorextensions#Microsoft_Extensions_DependencyInjection_Extensions_ServiceCollectionDescriptorExtensions rel = noreferrer> ServiceCollectionDescriptorExtensions 类。

// IFoo -> FooA
services.AddTransient<IFoo, FooA>();

// Replace
// IFoo -> FooB
var descriptor =
    new ServiceDescriptor(
        typeof(IFoo),
        typeof(FooB),
        ServiceLifetime.Transient);
services.Replace(descriptor);

另请参见:

  • ServiceDescriptor constructors