我想将组名称指定为授权过滤器的属性。
如下所示
[FilterConfig.AuthorizeAd(Group = "DirectoryName")] public ActionResult GetData() { }
我尝试通过以下方式添加硬编码,但是
[FilterConfig.AuthorizeAd(Group = Constants.ActiveDirectoryName)]
其中常量是类并且创建成员如下:
public const string ActiveDirectoryName = "directoryName";
现在我想从app.config中获取它,尝试如下
[FilterConfig.AuthorizeAd(Group = ConfigurationManager.AppSettings["Directory_Name"].ToString()
将msg错误称为“属性参数必须是常量表达式”
如何从配置中分配数据? 请建议我。
答案 0 :(得分:15)
您无法使用属性执行此操作,它们必须是错误消息中所述的常量。如果您想从配置文件中获取值,可以通过将键传递给属性来完成,然后在构造函数中从配置文件中获取所需的值
public MyAttribute :Attribute
{
private string _config;
public MyAttribute(string configKey)
{
_config = ConfigurationManager.AppSettings[configKey];
...
}
}
HTH