コード例 #1
0
        public static DependencyResolverOptions AddAttributeHandler <T>(this DependencyResolverOptions options, Func <ILogger <T>, T> createHandler) where T : IAttributeServiceDescriptorHandler
        {
            var logger  = options.BuildLogger <T>();
            var handler = createHandler(logger);

            options.Handlers.Add(handler);
            return(options);
        }
コード例 #2
0
        public static DependencyResolverOptions AddProvider <T>(this DependencyResolverOptions options, Func <ILogger <T>, DependencyResolverOptions, T> createProvider) where T : IServiceDescriptorProvider
        {
            var logger   = options.BuildLogger <T>();
            var provider = createProvider(logger, options);

            options.Providers.Add(provider);
            return(options);
        }
コード例 #3
0
        private static DependencyResolverOptions BuildDefaultOptions()
        {
            var options = new DependencyResolverOptions
            {
                LoggerFactory             = new NullLoggerFactory(),
                AssemblyResolvingStrategy = new DefaultAssemblyResolvingStrategy(),
            };

            options.AddAttributeHandler <FactoryServiceDescriptorHandler>(logger => new FactoryServiceDescriptorHandler(logger));
            options.AddAttributeHandler <InjectAllServiceDescriptorHandler>(logger => new InjectAllServiceDescriptorHandler(logger));
            options.AddAttributeHandler <InjectAsServiceDescriptorHandler>(logger => new InjectAsServiceDescriptorHandler(logger));
            options.AddAttributeHandler <InjectMatchingServiceDescriptorHandler>(logger => new InjectMatchingServiceDescriptorHandler(logger));
            options.AddProvider <AttributeServiceDescriptorProvider>((logger, strategy) => new AttributeServiceDescriptorProvider(logger, options.Handlers, strategy));

            return(options);
        }
コード例 #4
0
 public static ILogger <T> BuildLogger <T>(this DependencyResolverOptions options)
 {
     return(options.LoggerFactory.CreateLogger <T>());
 }
コード例 #5
0
 public static DependencyResolverOptions SetLogging(this DependencyResolverOptions options, ILoggerFactory factory)
 {
     options.LoggerFactory = factory;
     return(options);
 }
コード例 #6
0
 public static DependencyResolverOptions SetTypeStrategy(this DependencyResolverOptions options, ITypeResolvingStrategy strategy)
 {
     options.TypeResolvingStrategy = strategy;
     return(options);
 }
コード例 #7
0
 public static DependencyResolverOptions SetAssemblyStrategy(this DependencyResolverOptions options, IAssemblyResolvingStrategy strategy)
 {
     options.AssemblyResolvingStrategy = strategy;
     return(options);
 }