有一种方法可以将静态资源用作属性的Argumentos吗?
想象一下
[IsSecured("Secured","Here must be a description of the class")]
public class Secured
{
}
我需要第二个参数作为静态资源。像这样的东西
[IsSecured("Secured",ClassNames.SecuredClassNameDescription)]
public class Secured
{
[Allowed("Secured",ClassNames.SecuredMymethodDescription)]
public string Mymethod()
{
}
}
ClassNames 是 .resx 文件,其中包含SecuredClassNameDescription
和SecuredMymethodDescription
文字资源
答案 0 :(得分:1)
那些是属性,而不是属性 属性参数必须是编译时常量。
但是,您可以创建自己的继承属性,该属性在构造函数中占用资源 name (丢失类型安全性)并将资源值传递给基础构造函数:
public sealed class AllowedByResourceAttribute : AllowedAttribute {
public AllowedByResourceAttribute(string name, string resourceName) : base(name, GetResource(resourceName)) { }
}