2013-10-29 82 views
1

有一種方法可以將靜態資源用作屬性的參數?使用資源作爲屬性的參數

想象這

[IsSecured("Secured","Here must be a description of the class")] 
public class Secured 
{ 
} 

我還需要第二argumento是一個靜態資源。這樣

[IsSecured("Secured",ClassNames.SecuredClassNameDescription)] 
public class Secured 
{ 
    [Allowed("Secured",ClassNames.SecuredMymethodDescription)] 
    public string Mymethod() 
    { 
    } 
} 

類名東西是的.resx文件THA包含SecuredClassNameDescriptionSecuredMymethodDescription文本資源

回答

1

這些都是屬性,而不是屬性。
屬性參數必須是編譯時常量。

然而,你可以使自己的繼承屬性,它在構造函數中需要一個資源(失去類型安全),並把資源價值爲基礎構造:

public sealed class AllowedByResourceAttribute : AllowedAttribute { 
    public AllowedByResourceAttribute(string name, string resourceName) : base(name, GetResource(resourceName)) { } 
} 
+0

韓國社交協會,但你有沒有一些樣本? –

+0

@JuanPabloGomez:看我的編輯。 – SLaks