async Task IGeneratesCode.AttachPreBuiltTypes(GenerationRules rules, Assembly assembly, IServiceProvider services) { var typeSet = await TypeRepository.ForAssembly(assembly); var handlerTypes = typeSet.ClosedTypes.Concretes.Where(x => x.CanBeCastTo <MessageHandler>()).ToArray(); var container = (IContainer)services; foreach (var chain in Chains) { var handler = chain.AttachPreBuiltHandler(rules, container, handlerTypes); if (handler != null) { _handlers = _handlers.Update(chain.MessageType, handler); } } }