Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
        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);
        }