public static class EnumExtensions
{
public static TAttribute GetAttribute(this Enum value)
where TAttribute : Attribute
{
var type = value.GetType();
var name = Enum.GetName(type, value);
return type.GetField(name) // I prefer to get attributes this way
.GetCustomAttributes(false)
.OfType()
.SingleOrDefault();
}
}
public class AliasInfoAttribute : Attribute
{
internal AliasInfoAttribute(string alias)
{
this.Alias = alias;
}
public string Alias { get; private set; }
}
public enum EnumType
{
[AliasInfo("Alias1")]
Emp=1,
[AliasInfo("Alias2")]
Mngr= 2
}
To Get Attributes
GetAlias(EnumType.Emp)
public static string GetAlias(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
AliasInfoAttribute[] attributes =
(AliasInfoAttribute[])fi.GetCustomAttributes(
typeof(AliasInfoAttribute),
false);
string desc = string.Empty;
if (attributes != null &&
attributes.Length > 0)
return attributes[0].Alias;
else
return value.ToString();
}
Happy Coding
{
public static TAttribute GetAttribute
where TAttribute : Attribute
{
var type = value.GetType();
var name = Enum.GetName(type, value);
return type.GetField(name) // I prefer to get attributes this way
.GetCustomAttributes(false)
.OfType
.SingleOrDefault();
}
}
public class AliasInfoAttribute : Attribute
{
internal AliasInfoAttribute(string alias)
{
this.Alias = alias;
}
public string Alias { get; private set; }
}
public enum EnumType
{
[AliasInfo("Alias1")]
Emp=1,
[AliasInfo("Alias2")]
Mngr= 2
}
To Get Attributes
GetAlias(EnumType.Emp)
public static string GetAlias(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
AliasInfoAttribute[] attributes =
(AliasInfoAttribute[])fi.GetCustomAttributes(
typeof(AliasInfoAttribute),
false);
string desc = string.Empty;
if (attributes != null &&
attributes.Length > 0)
return attributes[0].Alias;
else
return value.ToString();
}
Happy Coding
No comments:
Post a Comment