在ASP网络核心中扩展IServiceCollection

时间:2020-01-16 00:13:51

标签: asp.net-core asp.net-core-mvc

我想创建一个类库项目,并且在该项目中包括一些接口和实现这些接口的类。

在那之后,我想以nuget包的形式提供这个类库项目,因此,从IServiceCollection进行某种扩展以使其在安装nuget之后在{{ 1}},Startup.cs在使用nuget的应用程序上,进行如下操作:

ConfigureServices()

,该方法将基于services.AddServicesFromMyNugetPackage()方法执行我对DI的配置。

有什么主意吗?

1 个答案:

答案 0 :(得分:4)

在您的库中,您可以创建一个静态类并编写一些扩展方法,您可以在其中注册您的依赖项,如以下示例所示:

public static class ServicesExtensions
{
        public static void AddMyLibraryServices(this IServiceCollection services)
        {
            // register your services here
        }
 }

,然后在您的启动文件中:

services.AddMyLibraryServices();