如何在.net core类库中注册DI服务?

问题描述 投票:0回答:1

我想在我的类库项目中添加一些服务,我在 Google 上找到了一些方法https://mcguirev10.com/2018/01/31/net-core-class-library-dependency-injection.html 。但是,我不想在控制台应用程序或 Web 应用程序中注册服务。我想在类库中创建一个完整的解决方案,用户在使用该库时不需要注册服务。

这是我尝试过的:

这是我的服务类别:

public static class ServiceCollectionExtension
{
    public static IServiceCollection AddServices(this IServiceCollection services)
    {
        services.AddSingleton<IClient, Client>();
        return services;
    }
}

我在网上找到了注册方法是这样的:

public class Program
{
    public static async Task Main(string[] args)
    {
        var services = new ServiceCollection();
        services.AddUsefulService();
    }
}

但我不想那样做。

.net class .net-core dependency-injection class-library
1个回答
0
投票

您可以尝试AutoRegisterDI在这里您可以找到一篇文章(链接在库自述文件中) 但请注意,正如评论的那样,通常微软也提供了一种扩展方法来手动注册依赖项,例如

builder.services.AddMyService()

我建议只使用一个扩展方法来注册您的库的所有依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.