CodeSharp.EventSourcing.DefaultAggregateRootInternalHandlerProvider.RegisterInternalHandlers C# (CSharp) Метод

RegisterInternalHandlers() публичный Метод

public RegisterInternalHandlers ( ) : void
Результат void
        public void RegisterInternalHandlers(params Assembly[] assemblies)
        {
            var bindingFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly;
            foreach (var assembly in assemblies)
            {
                foreach (var aggregateRootType in assembly.GetTypes().Where(t => TypeUtils.IsAggregateRoot(t)))
                {
                    var entries = from method in aggregateRootType.GetMethods(bindingFlags)
                                  let parameters = method.GetParameters()
                                  where (method.Name == "Handle" || method.Name.StartsWith("On")) && parameters.Length == 1
                                  select new { Method = method, EventType = parameters.First().ParameterType };

                    foreach (var entry in entries)
                    {
                        RegisterInternalHandler(aggregateRootType, entry.EventType, entry.Method);
                    }
                }
            }
        }