private static void ProcessStaticMethodAttributes(Type type) { List <string> list = null; MethodInfo[] methods = type.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); for (int i = 0; i < methods.GetLength(0); i++) { MethodInfo methodInfo = methods[i]; object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), false); if (customAttributes != null && customAttributes.Length > 0) { if (list == null) { list = new List <string>(); } list.Add(methodInfo.Name); } customAttributes = methodInfo.GetCustomAttributes(typeof(InitializeOnLoadMethodAttribute), false); if (customAttributes != null && customAttributes.Length > 0) { methodInfo.Invoke(null, null); } } if (list != null) { EditorAssemblies.StoreRuntimeInitializeClassInfo(type, list); } }
private static void ProcessStaticMethodAttributes(Type type) { List <string> list = null; List <RuntimeInitializeLoadType> list2 = null; MethodInfo[] methods = type.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); for (int i = 0; i < methods.GetLength(0); i++) { MethodInfo methodInfo = methods[i]; if (Attribute.IsDefined(methodInfo, typeof(RuntimeInitializeOnLoadMethodAttribute))) { RuntimeInitializeLoadType item = RuntimeInitializeLoadType.AfterSceneLoad; object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), false); if (customAttributes != null && customAttributes.Length > 0) { item = ((RuntimeInitializeOnLoadMethodAttribute)customAttributes[0]).loadType; } if (list == null) { list = new List <string>(); list2 = new List <RuntimeInitializeLoadType>(); } list.Add(methodInfo.Name); list2.Add(item); } if (Attribute.IsDefined(methodInfo, typeof(InitializeOnLoadMethodAttribute))) { methodInfo.Invoke(null, null); } } if (list != null) { EditorAssemblies.StoreRuntimeInitializeClassInfo(type, list, list2); } }
private static void ProcessRuntimeInitializeOnLoad(MethodInfo method) { RuntimeInitializeLoadType item = RuntimeInitializeLoadType.AfterSceneLoad; object[] customAttributes = method.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), false); if (customAttributes != null && customAttributes.Length > 0) { item = ((RuntimeInitializeOnLoadMethodAttribute)customAttributes[0]).loadType; } EditorAssemblies.StoreRuntimeInitializeClassInfo(method.DeclaringType, new List <string> { method.Name }, new List <RuntimeInitializeLoadType> { item }); }
private static void ProcessStaticMethodAttributes(System.Type type) { List <string> methodNames = (List <string>)null; List <RuntimeInitializeLoadType> loadTypes = (List <RuntimeInitializeLoadType>)null; MethodInfo[] methods = type.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); for (int index = 0; index < methods.GetLength(0); ++index) { MethodInfo methodInfo = methods[index]; if (Attribute.IsDefined((MemberInfo)methodInfo, typeof(RuntimeInitializeOnLoadMethodAttribute))) { RuntimeInitializeLoadType initializeLoadType = RuntimeInitializeLoadType.AfterSceneLoad; object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), false); if (customAttributes != null && customAttributes.Length > 0) { initializeLoadType = ((RuntimeInitializeOnLoadMethodAttribute)customAttributes[0]).loadType; } if (methodNames == null) { methodNames = new List <string>(); loadTypes = new List <RuntimeInitializeLoadType>(); } methodNames.Add(methodInfo.Name); loadTypes.Add(initializeLoadType); } if (Attribute.IsDefined((MemberInfo)methodInfo, typeof(InitializeOnLoadMethodAttribute))) { methodInfo.Invoke((object)null, (object[])null); } } if (methodNames == null) { return; } EditorAssemblies.StoreRuntimeInitializeClassInfo(type, methodNames, loadTypes); }