using System; using System.Reflection; using System.Runtime.CompilerServices; namespace DCFApixels.DragonECS.Internal { internal static class ReflectionUtility { [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool TryGetAttribute(this MemberInfo self, out T attribute) where T : Attribute { attribute = self.GetCustomAttribute(); return attribute != null; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool TryGetAttribute(this MemberInfo self, bool inherit, out T attribute) where T : Attribute { attribute = self.GetCustomAttribute(inherit); return attribute != null; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool HasAttribute(this MemberInfo self) where T : Attribute { return self.GetCustomAttribute() != null; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool HasAttribute(this MemberInfo self, bool inherit) where T : Attribute { return self.GetCustomAttribute(inherit) != null; } } }