【发布时间】:2014-10-31 01:58:55
【问题描述】:
我尝试使用带有字符串值的枚举,因为我使用 Attribute 但它显示错误为 扩展方法必须定义在非泛型静态类中
public enum CommonMessagesEnum : int
{
[StringValue("This Operation is not allowed.")]
NotAllowed = 1
}
public class StringValueAttribute : Attribute
{
public string StringValue { get; protected set; }
public StringValueAttribute(string value)
{
this.StringValue = value;
}
public static string GetStringValue(this Enum value)
{
Type type = value.GetType();
FieldInfo fieldInfo = type.GetField(value.ToString());
StringValueAttribute[] attribs = fieldInfo.GetCustomAttributes(typeof(StringValueAttribute), false) as StringValueAttribute[];
return attribs.Length > 0 ? attribs[0].StringValue : null;
}
}
【问题讨论】:
-
那么有什么问题。为什么不将扩展方法移动到另一个类?
标签: c# wpf c#-4.0 enums c#-3.0