| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- using System;
- using System.Linq;
- using System.Reflection;
- namespace XLua
- {
- internal static class TypeExtensions
- {
- public static bool IsValueType(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsValueType;
- #else
- return type.GetTypeInfo().IsValueType;
- #endif
- }
- public static bool IsEnum(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsEnum;
- #else
- return type.GetTypeInfo().IsEnum;
- #endif
- }
- public static bool IsPrimitive(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsPrimitive;
- #else
- return type.GetTypeInfo().IsPrimitive;
- #endif
- }
- public static bool IsAbstract(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsAbstract;
- #else
- return type.GetTypeInfo().IsAbstract;
- #endif
- }
- public static bool IsSealed(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsSealed;
- #else
- return type.GetTypeInfo().IsSealed;
- #endif
- }
- public static bool IsInterface(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsInterface;
- #else
- return type.GetTypeInfo().IsInterface;
- #endif
- }
- public static bool IsClass(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsClass;
- #else
- return type.GetTypeInfo().IsClass;
- #endif
- }
- public static Type BaseType(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.BaseType;
- #else
- return type.GetTypeInfo().BaseType;
- #endif
- }
- public static bool IsGenericType(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsGenericType;
- #else
- return type.GetTypeInfo().IsGenericType;
- #endif
- }
- public static bool IsGenericTypeDefinition(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsGenericTypeDefinition;
- #else
- return type.GetTypeInfo().IsGenericTypeDefinition;
- #endif
- }
- #if UNITY_WSA && !UNITY_EDITOR
- public static bool IsSubclassOf(this Type type, Type c)
- {
- return type.GetTypeInfo().IsSubclassOf(c);
- }
- public static bool IsDefined(this Type type, Type attributeType, bool inherit)
- {
- return type.GetTypeInfo().IsDefined(attributeType, inherit);
- }
- public static Type[] GetGenericParameterConstraints(this Type type)
- {
- return type.GetTypeInfo().GetGenericParameterConstraints();
- }
- #endif
- public static bool IsNestedPublic(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsNestedPublic;
- #else
- return type.GetTypeInfo().IsNestedPublic;
- #endif
- }
- public static bool IsPublic(this Type type)
- {
- #if !UNITY_WSA || UNITY_EDITOR
- return type.IsPublic;
- #else
- return type.GetTypeInfo().IsPublic;
- #endif
- }
- public static string GetFriendlyName(this Type type)
- {
- if (type == typeof(int))
- return "int";
- else if (type == typeof(short))
- return "short";
- else if (type == typeof(byte))
- return "byte";
- else if (type == typeof(bool))
- return "bool";
- else if (type == typeof(long))
- return "long";
- else if (type == typeof(float))
- return "float";
- else if (type == typeof(double))
- return "double";
- else if (type == typeof(decimal))
- return "decimal";
- else if (type == typeof(string))
- return "string";
- else if (type.IsGenericType())
- return type.FullName.Split('`')[0] + "<" + string.Join(", ", type.GetGenericArguments()
- .Select(x => GetFriendlyName(x)).ToArray()) + ">";
- else
- return type.FullName;
- }
- }
- }
|