首页 > 解决方案 > 在 asp net core 中扩展 IServiceCollection

问题描述

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

之后,我想提供这个类库项目,作为一个 nuget 包,因此,理想的情况是从 IServiceCollection 进行某种扩展,以便在安装 nuget 后Startup.csConfigureServices()在应用程序中的一行代码正在使用 nuget,做这样的事情:

services.AddServicesFromMyNugetPackage()

并且该方法将根据IServiceCollection我对 DI 的配置执行。

任何想法?

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

解决方案


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

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

然后在您的启动文件中:

services.AddMyLibraryServices();

推荐阅读