访问自定义属性

时间:2017-03-22 05:53:59

标签: c# enums

我编写了一个自定义属性来支持使用枚举描述符进行本地化。这是我的代码

 public class LocalizedDescriptionAttribute : DescriptionAttribute
{
    ResourceManager _resourceManager;
    string _resourceKey;

    public LocalizedDescriptionAttribute(string resourceKey, Type resourceType)
    {
        _resourceManager = new ResourceManager(resourceType);
        _resourceKey = resourceKey;
    }

    public override string Description
    {
        get
        {
            string description = _resourceManager.GetString(_resourceKey);
            return string.IsNullOrWhiteSpace(description) ? string.Format("[[{0}]]", _resourceKey) : description;
        }
    }
}

我支持像这样的本地化

 public enum Shape
{

    [LocalizedDescription("STR_SQUARE", typeof(MyResources))]
    SQUARE

}

但是如果从资源文件中删除资源字符串,则不会出现编译时错误。我想以这样的方式编写属性:如果从资源文件中删除资源字符串,我的代码应该给出编译错误。

我不知道为什么我无法做到这一点,如何通过自定义属性实现下面提到的。

 public enum Shape
{

    [LocalizedDescription(MyResources.STR_SQUARE, typeof(MyResources))]
    SQUARE

}

0 个答案:

没有答案