Appccelerate.EventBroker.Internals.Inspection.EventInspector.ScanForSubscriptions C# (CSharp) Method

ScanForSubscriptions() private static method

private static ScanForSubscriptions ( object instance ) : IEnumerable
instance object
return IEnumerable
        private static IEnumerable<PropertySubscriptionScanResult> ScanForSubscriptions(object instance)
        {
            var methodInfos = new List<MethodInfo>();
            methodInfos.AddRange(instance.GetType().GetMethods());
            foreach (Type interfaceType in instance.GetType().GetInterfaces())
            {
                methodInfos.AddRange(interfaceType.GetMethods());
            }

            var subscriptions = from methodInfo in methodInfos
                                from EventSubscriptionAttribute attr in
                                    methodInfo.GetCustomAttributes(typeof(EventSubscriptionAttribute), true)
                                select new PropertySubscriptionScanResult(attr.Topic, methodInfo, attr.HandlerType, attr.MatcherTypes);

            return subscriptions.ToList();
        }