Asp.net-Core
類庫中 .NET Core 中的依賴注入
如何在 .NET Core 庫項目中將一個類註入到另一個類中?我應該在哪裡配置 DI,因為它在 API 項目的 StartUp Class ConfigureServices 中完成?
關於如何管理它有很多思考過程,因為最終,呼叫者將需要為您註冊您的 DI 流程。
如果您查看 Microsoft 和其他人使用的方法,您通常會使用諸如“AddMyCustomLibrary”之類的方法定義的擴展方法作為 IServiceCollection 的擴展方法。這裡有一些討論。
在Google上搜尋了很多之後,我找不到這個問題的例子的全面答案。這是在類庫中使用 DI 應該做的事情。
在您的圖書館中:
public class TestService : ITestService { private readonly ITestManager _testManager; public TestService(ITestManager testManager) { _testManager = testManager; } } public class TestManager : ITestManager { private readonly ITestManager _testManager; public TestManager() { } }然後在庫中擴展 IServiceCollection:
public static class ServiceCollectionExtensions { public static void AddTest(this IServiceCollection services) { services.AddScoped<ITestManager, TestManager>(); services.AddScoped<ITestService, TestService>(); } }最後在主應用 StartUp(API、控制台等)中:
public void ConfigureServices(IServiceCollection services) { services.AddTest(); }