Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AttributeUtilities.cs
Go to the documentation of this file.
1
using
System
;
2
using
System.Linq
;
3
using
System.Reflection
;
4
5
namespace
ReLogic.Utilities
;
6
7
public
static
class
AttributeUtilities
8
{
9
private
static
class
TypeAttributeCache
<T,
A
> where
A
:
Attribute
10
{
11
public
static
readonly
A
Value
= typeof(T).GetAttribute<
A
>();
12
}
13
14
public
static
T
GetAttribute<T>
(
this
MethodBase
method) where
T
:
Attribute
15
{
16
return
(T)method.
GetCustomAttributes
(typeof(T), inherit:
false
).SingleOrDefault();
17
}
18
19
public
static
T
GetAttribute<T>
(
this
Enum
value
) where
T
:
Attribute
20
{
21
Type
type
=
value
.
GetType
();
22
string
name =
Enum
.
GetName
(
type
,
value
);
23
return
type
.GetField(name).GetCustomAttributes(inherit:
false
).OfType<T>()
24
.SingleOrDefault();
25
}
26
27
public
static
A
GetCacheableAttribute<T, A>
() where
A
:
Attribute
28
{
29
return
TypeAttributeCache<T, A>
.
Value
;
30
}
31
32
public
static
T
GetAttribute<T>
(
this
Type
type
) where
T
:
Attribute
33
{
34
return
type
.
GetCustomAttributes
(inherit:
false
).OfType<T>().SingleOrDefault();
35
}
36
}
ReLogic.Utilities.AttributeUtilities.TypeAttributeCache.Value
static readonly A Value
Definition
AttributeUtilities.cs:11
ReLogic.Utilities.AttributeUtilities.TypeAttributeCache
Definition
AttributeUtilities.cs:10
ReLogic.Utilities.AttributeUtilities.GetCacheableAttribute< T, A >
static A GetCacheableAttribute< T, A >()
Definition
AttributeUtilities.cs:27
ReLogic.Utilities.AttributeUtilities.GetAttribute< T >
static T GetAttribute< T >(this MethodBase method)
Definition
AttributeUtilities.cs:14
ReLogic.Utilities.AttributeUtilities
Definition
AttributeUtilities.cs:8
System.Attribute.GetCustomAttributes
static Attribute[] GetCustomAttributes(MemberInfo element, Type attributeType)
Definition
Attribute.cs:338
System.Attribute
Definition
Attribute.cs:12
System.Enum.GetName
static ? string GetName(Type enumType, object value)
Definition
Enum.cs:281
System.Enum
Definition
Enum.cs:14
System.Reflection.MethodBase
Definition
MethodBase.cs:12
System.Type.GetType
static ? Type GetType(string typeName, bool throwOnError, bool ignoreCase)
Definition
Type.cs:408
System.Type
Definition
Type.cs:14
ReLogic.Utilities
Definition
AttributeUtilities.cs:5
System.Linq
Definition
ImmutableArrayExtensions.cs:4
System.Reflection
Definition
ICustomTypeProvider.cs:1
System.ExceptionArgument.value
@ value
System.ExceptionArgument.type
@ type
System.ConsoleKey.A
@ A
System.ConsoleKey.T
@ T
System
Definition
BlockingCollection.cs:8
source
ReLogic
ReLogic.Utilities
AttributeUtilities.cs
Generated by
1.10.0