gpt4 book ai didi

dependency-injection - AutoFac 注入(inject)属性

转载 作者:行者123 更新时间:2023-12-04 03:43:09 24 4
gpt4 key购买 nike

所以我需要将许多不同的服务注入(inject)到我正在使用的授权属性中。为简单起见,我将把它留给配置管理器。

public class FeatureAuthorizeAttribute : AuthorizeAttribute
{
public IConfigurationManager ConfigurationManager;

private readonly string _feature;
public FeatureAuthorizeAttribute(string feature)
{
_feature = feature;

var test = ConfigurationManager.GetCdnPath();
}
}

将按如下方式使用
[FeatureAuthorize("Admin")]

我尝试使用构造函数注入(inject)
public FeatureAuthorizeAttribute(string feature, IConfigurationManager configurationManager)
{
ConfigurationManager = configurationManager;
_feature = feature
}

但是,当我尝试时,这只会导致错误
[FeatureAuthorize("Admin", IConfigurationManager)]

首先,这似乎是错误的做法。我假设我需要在容器中注册我的自定义授权属性才能开始接收

最佳答案

与其尝试对属性使用依赖注入(inject)(你不能以任何理智、有用的方式做到这一点),不如创建 Passive Attributes .

具体来说,在这种情况下,假设这是一个 ASP.NET MVC 方案,您不能从 AuthorizeAttribute 派生。 .相反,您应该让授权服务查找您的自定义属性,并实现 IAuthorizationFilter .然后将过滤器添加到应用程序的配置中。

可以在此答案中找到更多详细信息:https://stackoverflow.com/a/7194467/126014 .

关于dependency-injection - AutoFac 注入(inject)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32614912/

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