avatar/Assets/VRCFury/Scripts/Editor/VF/ReflectionUtils.cs

24 lines
792 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace VF {
public static class ReflectionUtils {
public static Type GetTypeFromAnyAssembly(string type) {
return AppDomain.CurrentDomain.GetAssemblies()
.Select(assembly => assembly.GetType(type))
.FirstOrDefault(t => t != null);
}
public static object CallWithOptionalParams(MethodInfo method, object obj, params object[] prms) {
var list = new List<object>(prms);
var paramCount = method.GetParameters().Length;
while (list.Count < paramCount) {
list.Add(Type.Missing);
}
return method.Invoke(obj, list.ToArray());
}
}
}