Exemplo n.º 1
0
        private static void RegisterEventTypesAndHandlers(Assembly assembly)
        {
            if (assembly == null)
            {
                return;
            }

            foreach (Type type in assembly.GetTypes())
            {
                foreach (MethodInfo method in type.GetMethods())
                {
                    if (!method.IsPublic || !method.IsStatic)
                    {
                        continue;
                    }

                    var descriptorArray = method.GetCustomAttributes(typeof(MyGlobalEventHandler), false);
                    if (descriptorArray != null && descriptorArray.Length > 0)
                    {
                        foreach (var descriptor in descriptorArray)
                        {
                            MyGlobalEventHandler typedDescriptor = (MyGlobalEventHandler)descriptor;

                            RegisterHandler(typedDescriptor.EventDefinitionId, MethodInfoExtensions.CreateDelegate <GlobalEventHandler>(method));
                        }
                    }
                }
            }
        }
        private static void RegisterEventTypesAndHandlers(Assembly assembly)
        {
            if (assembly == null)
            {
                return;
            }

#if XB1 // XB1_ALLINONEASSEMBLY
            System.Diagnostics.Debug.Assert(m_registered == false);
            if (m_registered == true)
            {
                return;
            }
            m_registered = true;
            foreach (Type type in MyAssembly.GetTypes())
#else // !XB1
            foreach (Type type in assembly.GetTypes())
#endif // !XB1
            {
                foreach (MethodInfo method in type.GetMethods())
                {
                    if (!method.IsPublic || !method.IsStatic)
                    {
                        continue;
                    }

                    var descriptorArray = method.GetCustomAttributes(typeof(MyGlobalEventHandler), false);
                    if (descriptorArray != null && descriptorArray.Length > 0)
                    {
                        foreach (var descriptor in descriptorArray)
                        {
                            MyGlobalEventHandler typedDescriptor = (MyGlobalEventHandler)descriptor;

                            RegisterHandler(typedDescriptor.EventDefinitionId, method);
                        }
                    }
                }
            }

            m_globalEventFactory.RegisterFromAssembly(assembly);
        }