This commit is contained in:
36
server/util/EnumAttributeExtension.cs
Normal file
36
server/util/EnumAttributeExtension.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// Get custom attribute extension
|
||||
/// </summary>
|
||||
public static class EnumExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Check if enum has attribute type
|
||||
/// Example usage bool c = Biz.SockType.License.HasAttribute(typeof(Biz.AttachableAttribute));
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="t"></param>
|
||||
/// <returns></returns>
|
||||
public static bool HasAttribute(this Enum value, Type t)
|
||||
{
|
||||
var type = value.GetType();
|
||||
var name = Enum.GetName(type, value);
|
||||
if (name != null)
|
||||
{
|
||||
var field = type.GetField(name);
|
||||
if (field != null)
|
||||
{
|
||||
var attr =
|
||||
Attribute.GetCustomAttribute(field, t);
|
||||
if (attr != null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user