ASP.NET Core--条件处理程序中的依赖注入
翻译如下:
在配置期间(使用依赖注入),授权处理程序必须在服务集合中注册。
假设您有一个在授权处理程序中要解析规则的仓储库,并且该仓储库已在服务集合中注册。 授权将在构造函数还原并注入。
例如,如果你想使用ASP.NET的日志记录基础设施,你将ILoggerFactory注入你的处理程序。 这样的处理程序可能如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class LoggingAuthorizationHandler : AuthorizationHandler<MyRequirement> { ILogger _logger; public LoggingAuthorizationHandler(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger( this .GetType().FullName); } protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MyRequirement requirement) { _logger.LogInformation( "Inside my handler" ); // Check if the requirement is fulfilled. return Task.CompletedTask; } } |
您需要注册一个处理程序:services.AddSingleton():
1 | services.AddSingleton<IAuthorizationHandler, LoggingAuthorizationHandler>(); |
处理程序的实例将在应用程序启动时创建,我将注册的ILoggerFactory注入到构造函数中。
注意:
使用Entity Framework的处理程序不应该注册为单例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步