gpt4 book ai didi

dependency-injection - ASP.NET Core 内置 DI 系统中的 DI Modules

转载 作者:行者123 更新时间:2023-12-05 08:42:32 28 4
gpt4 key购买 nike

我已经使用 NInject 一段时间了,现在我将在 Asp.net Core 中开始一个项目。好像NInject cannot be used with Asp.net Core .所以现在我的问题是 Asp.net 核心是否提供任何 di modules just as NInject或者其他 di 容器提供?

最佳答案

ASP.NET Core 根本不提供任何模块支持。它被设计成一个简单的开箱即用容器,第 3 方 IoC 容器可以插入其中。

因此没有自动注册、程序集扫描、装饰器、拦截器或模块。如果您需要它们,您需要使用第 3 方框架(AutoFac、StructureMap 等)。

第 3 方库确实使用注册方法进行注册,这些方法在 ConfigureServices 方法中被称为 services.AddXxx()

public static class MyLibraryServiceCollectionExtensions
{
public static IServiceCollection AddMyLibrary(this IServiceCollection services)
{
services.TryAddScoped<IMyService,MyService>();

return services;
}
}

这是注册库的首选方式(因为它不依赖于任何 IoC 容器,除了内置的 IServiceCollection,第 3 方容器在插入 ASP.NET Core 时也会使用) ,对于像“业务逻辑库”这样的东西,实际上并没有这样的东西(模块以前有用)。

关于dependency-injection - ASP.NET Core 内置 DI 系统中的 DI Modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40457899/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com