mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-06 17:58:05 +02:00
21 lines
722 B
C#
21 lines
722 B
C#
using System;
|
|
using System.Reflection;
|
|
|
|
namespace Robust.Shared.Reflection
|
|
{
|
|
internal static class ReflectionExtensions
|
|
{
|
|
public static Type GetUnderlyingType(this MemberInfo member)
|
|
{
|
|
return member.MemberType switch
|
|
{
|
|
MemberTypes.Event => ((EventInfo) member).EventHandlerType!,
|
|
MemberTypes.Field => ((FieldInfo) member).FieldType,
|
|
MemberTypes.Method => ((MethodInfo) member).ReturnType,
|
|
MemberTypes.Property => ((PropertyInfo) member).PropertyType,
|
|
_ => throw new ArgumentException("MemberInfo must be one of: EventInfo, FieldInfo, MethodInfo, PropertyInfo")
|
|
};
|
|
}
|
|
}
|
|
}
|