Commit 1a86b42b authored by 阿星Plus's avatar 阿星Plus

Enum Alias Attribute

parent d24fe49b
using System;
namespace Plus.CodeAnnotations
{
/// <summary>
/// 枚举属性,定义别名
/// </summary>
public class EnumAliasAttribute : Attribute
{
public string Alias { get; set; }
public EnumAliasAttribute(string alias)
{
Alias = alias;
}
}
}
\ No newline at end of file
using System;
using System.Reflection;
namespace Plus.CodeAnnotations
{
/// <summary>
/// 枚举扩展
/// </summary>
public static class EnumExtensions
{
/// <summary>
/// 获取枚举别名
/// </summary>
/// <param name="_enum"></param>
/// <returns></returns>
public static string ToAlias(this Enum _enum)
{
Type type = _enum.GetType();
FieldInfo field = type.GetField(_enum.ToString());
if (field == null)
{
return string.Empty;
}
string result = string.Empty;
object[] customAttributes = field.GetCustomAttributes(typeof(EnumAliasAttribute), inherit: false);
object[] array = customAttributes;
for (int i = 0; i < array.Length; i++)
{
EnumAliasAttribute enumAliasAttribute = (EnumAliasAttribute)array[i];
result = enumAliasAttribute.Alias;
}
return result;
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment