public IHandlerSetup UseHandlerTypes(IEnumerable <Type> commandTypes, TypeInstanceResolver resolver = null, ITypeVerbExtractor verbExtractor = null) { Assert.ArgumentNotNull(commandTypes, nameof(commandTypes)); var source = new TypeListConstructSource(commandTypes, resolver ?? _defaultResolver, verbExtractor); return(AddSource(source)); }
public HandlerSetup(TypeInstanceResolver defaultResolver = null) { _defaultResolver = defaultResolver; _sources = new List <IHandlerSource>(); _delegates = new DelegateHandlerSource(); _scripts = new ScriptHandlerSource(); _instances = new NamedInstanceHandlerSource(); _aliases = new AliasMap(); }
public TypeListConstructSource(IEnumerable <Type> commandTypes, TypeInstanceResolver resolver, ITypeVerbExtractor verbExtractor) { _resolver = resolver ?? DefaultResolver; verbExtractor ??= TypeVerbExtractor.DefaultInstance; _commands = commandTypes .OrEmptyIfNull() .SelectMany(commandType => verbExtractor.GetVerbs(commandType) .Select(verb => (verb, commandType)) ) .ToDictionaryUnique(); }