示例#1
0
        public WebApiMiddlewareConfiguration(IAppEnvironmentProvider appEnvironmentProvider,
                                             IEnumerable <IWebApiConfigurationCustomizer> webApiConfgurationCustomizers, System.Web.Http.Dependencies.IDependencyResolver webApiDependencyResolver, IWebApiOwinPipelineInjector webApiOwinPipelineInjector)
        {
            if (appEnvironmentProvider == null)
            {
                throw new ArgumentNullException(nameof(appEnvironmentProvider));
            }

            if (webApiConfgurationCustomizers == null)
            {
                throw new ArgumentNullException(nameof(webApiConfgurationCustomizers));
            }

            if (webApiDependencyResolver == null)
            {
                throw new ArgumentNullException(nameof(webApiDependencyResolver));
            }

            if (webApiOwinPipelineInjector == null)
            {
                throw new ArgumentNullException(nameof(webApiOwinPipelineInjector));
            }

            _activeAppEnvironment          = appEnvironmentProvider.GetActiveAppEnvironment();
            _webApiConfgurationCustomizers = webApiConfgurationCustomizers;
            _webApiDependencyResolver      = webApiDependencyResolver;
            _webApiOwinPipelineInjector    = webApiOwinPipelineInjector;
        }
示例#2
0
 public Startup(
     IDependencyResolver webDependencyResolver,
     IConfiguration configuration,
     IDbCleanupJob cleanupJob)
 {
     _webDependencyResolver = webDependencyResolver;
     _configuration         = configuration;
     _cleanupJob            = cleanupJob;
 }
示例#3
0
 public Startup(
     IDependencyResolver webDependencyResolver,
     IConfiguration configuration,
     IJob jobManager)
 {
     _webDependencyResolver = webDependencyResolver;
     _configuration         = configuration;
     _jobManager            = jobManager;
 }
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            //设置AutoFac解析器
            System.Web.Http.Dependencies.IDependencyResolver autoFacResolver = ApiContainer.Init(); //初始化容器
            HttpConfiguration config = GlobalConfiguration.Configuration;                           //获取HttpConfiguration

            config.DependencyResolver = autoFacResolver;                                            //将AutoFac解析器设置为系统DI解析器
        }
示例#5
0
        public static void RegisterComponents()
        {
            ContainerBuilder builder = GetBuilder();

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            var container = builder.Build();

            apiResolver = new AutofacWebApiDependencyResolver(container);

            GlobalConfiguration.Configuration.DependencyResolver = apiResolver;
        }
示例#6
0
        public DefaultODataActionCreateUpdateParameterDeserializer(System.Web.Http.Dependencies.IDependencyResolver dependencyResolver)
            : base(ODataPayloadKind.Parameter)
        {
            if (dependencyResolver == null)
            {
                throw new ArgumentNullException(nameof(dependencyResolver));
            }

            _stringFormatterConvert             = new ODataJsonDeSerializerStringCorrector(dependencyResolver.GetServices(typeof(IStringCorrector).GetTypeInfo()).Cast <IStringCorrector>().ToArray());
            _odataJsonDeserializerEnumConverter = new ODataJsonDeSerializerEnumConverter();
        }
示例#7
0
文件: OwinActor.cs 项目: RenEvo/mud
        public OwinActor(ILog logger, System.Web.Http.Dependencies.IDependencyResolver resolver)
        {
            if (logger == null) throw new ArgumentNullException(nameof(logger));
            if (resolver == null) throw new ArgumentNullException(nameof(resolver));

            _logger = logger;
            _resolver = resolver;

            _webOptions = new StartOptions { Port = 8000 };
            _webOptions.Urls.Add("http://localhost:" + 8000);
        }
示例#8
0
        private void SetupDevContainer()
        {
            _container = new DevContainer();
            ((DevContainer)_container).SetupForSQLite(Castle.Core.LifestyleType.PerWebRequest);

            _container.Install(new WindsorControllerInstaller(_container));

            _resolver = new WindsorHttpDependencyResolver(_container);

            var windsorControllerFactory = new WindsorControllerFactory(_container);

            ControllerBuilder.Current.SetControllerFactory(windsorControllerFactory);
        }
示例#9
0
        public void ConfigureOAuth(IAppBuilder app, System.Web.Http.Dependencies.IDependencyResolver resolver)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {
                AllowInsecureHttp         = true,
                TokenEndpointPath         = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new AuthorizationProvider((IAuthorizationService)resolver.GetService(typeof(AuthorizationService)))
            };

            app.UseOAuthAuthorizationServer(OAuthServerOptions);
            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
        }
示例#10
0
        private void SetupContainer()
        {
            _container = new DefaultContainer();

            ((DefaultContainer)_container).SetupForWeb();

            _container.Install(new WindsorControllerInstaller(_container));

            _resolver = new WindsorHttpDependencyResolver(_container);

            var windsorControllerFactory = new WindsorControllerFactory(_container);

            ControllerBuilder.Current.SetControllerFactory(windsorControllerFactory);
        }
示例#11
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //ImageResizer
            //new PluginName().Install(ImageResizer.Configuration.Config.Current);
            #region IoC
            // 文档参考 http://autofaccn.readthedocs.io/zh/latest/getting-started/index.html
            var builder = new ContainerBuilder();
            // Mvc Register
            builder.RegisterControllers(Assembly.GetExecutingAssembly()).AsSelf().PropertiesAutowired();
            builder.RegisterFilterProvider();

            //WebApi Register
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).AsSelf().PropertiesAutowired();
            builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
            builder.RegisterWebApiModelBinderProvider();

            //Services
            builder.RegisterType <ArticleService>().As <IArticleService>().InstancePerDependency();

            // 注册Autofac Module
            builder.RegisterModule(new LoggingModule());

            var connectionString = ConfigurationManager.ConnectionStrings["components"].ConnectionString;
            //数据库
            builder.Register <IDbContext>(c => new DIILContext(connectionString)).InstancePerLifetimeScope();
            //repositories
            builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();

            var container = builder.Build();

            // WebApiResolver
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            apiResolver = webApiResolver;
            GlobalConfiguration.Configuration.DependencyResolver = webApiResolver;

            // Set the dependency resolver for MVC.
            var resolver = new AutofacDependencyResolver(container);
            mvcResolver = resolver;
            DependencyResolver.SetResolver(mvcResolver);

            #endregion
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //初始化容器,并返回适用于WebApi的AutoFac解析器
            System.Web.Http.Dependencies.IDependencyResolver autoFacResolver = ApiContainer.Init();
            //获取HttpConfiguration
            HttpConfiguration config = GlobalConfiguration.Configuration;

            //将AutoFac解析器设置为系统DI解析器
            config.DependencyResolver = autoFacResolver;
        }
        public WebApiODataMiddlewareConfiguration(IAppEnvironmentProvider appEnvironmentProvider,
                                                  IEnumerable <IODataServiceBuilder> odataServiceBuilders, IEnumerable <IWebApiConfigurationCustomizer> webApiConfgurationCustomizers, System.Web.Http.Dependencies.IDependencyResolver webApiDependencyResolver, IODataModelBuilderProvider oDataModelBuilderProvider, IWebApiOwinPipelineInjector webApiOwinPipelineInjector, IContainerBuilder containerBuilder)
        {
            if (odataServiceBuilders == null)
            {
                throw new ArgumentNullException(nameof(odataServiceBuilders));
            }

            if (appEnvironmentProvider == null)
            {
                throw new ArgumentNullException(nameof(appEnvironmentProvider));
            }

            if (webApiConfgurationCustomizers == null)
            {
                throw new ArgumentNullException(nameof(webApiConfgurationCustomizers));
            }

            if (webApiDependencyResolver == null)
            {
                throw new ArgumentNullException(nameof(webApiDependencyResolver));
            }

            if (oDataModelBuilderProvider == null)
            {
                throw new ArgumentNullException(nameof(oDataModelBuilderProvider));
            }

            if (webApiOwinPipelineInjector == null)
            {
                throw new ArgumentNullException(nameof(webApiOwinPipelineInjector));
            }

            if (containerBuilder == null)
            {
                throw new ArgumentNullException(nameof(containerBuilder));
            }

            _activeAppEnvironment          = appEnvironmentProvider.GetActiveAppEnvironment();
            _odataServiceBuilders          = odataServiceBuilders;
            _webApiConfgurationCustomizers = webApiConfgurationCustomizers;
            _webApiDependencyResolver      = webApiDependencyResolver;
            _oDataModelBuilderProvider     = oDataModelBuilderProvider;
            _webApiOwinPipelineInjector    = webApiOwinPipelineInjector;
            _containerBuilder = containerBuilder;
        }
示例#14
0
        public WebApiODataMiddlewareConfiguration(IAppEnvironmentProvider appEnvironmentProvider,
                                                  IEnumerable <IEdmModelProvider> emdEdmModelProviders, IEnumerable <IWebApiGlobalActionFiltersProvider> globalActionFilterProviders, System.Web.Http.Dependencies.IDependencyResolver webApiDependencyResolver, IODataModelBuilderProvider oDataModelBuilderProvider, IODataContainerBuilderCustomizer oDataContainerBuilderCustomizer, IWebApiOwinPipelineInjector webApiOwinPipelineInjector)
        {
            if (emdEdmModelProviders == null)
            {
                throw new ArgumentNullException(nameof(emdEdmModelProviders));
            }

            if (appEnvironmentProvider == null)
            {
                throw new ArgumentNullException(nameof(appEnvironmentProvider));
            }

            if (globalActionFilterProviders == null)
            {
                throw new ArgumentNullException(nameof(globalActionFilterProviders));
            }

            if (webApiDependencyResolver == null)
            {
                throw new ArgumentNullException(nameof(webApiDependencyResolver));
            }

            if (oDataModelBuilderProvider == null)
            {
                throw new ArgumentNullException(nameof(oDataModelBuilderProvider));
            }

            if (oDataContainerBuilderCustomizer == null)
            {
                throw new ArgumentNullException(nameof(oDataContainerBuilderCustomizer));
            }

            if (webApiOwinPipelineInjector == null)
            {
                throw new ArgumentNullException(nameof(webApiOwinPipelineInjector));
            }

            _activeAppEnvironment            = appEnvironmentProvider.GetActiveAppEnvironment();
            _emdEdmModelProviders            = emdEdmModelProviders;
            _globalActionFilterProviders     = globalActionFilterProviders;
            _webApiDependencyResolver        = webApiDependencyResolver;
            _oDataModelBuilderProvider       = oDataModelBuilderProvider;
            _oDataContainerBuilderCustomizer = oDataContainerBuilderCustomizer;
            _webApiOwinPipelineInjector      = webApiOwinPipelineInjector;
        }
            /// <summary>
            /// Registers the specified <see cref="System.Web.Http.Dependencies.IDependencyResolver"/>.
            /// </summary>
            /// <param name="resolver">The resolver.</param>
            public static void Register(System.Web.Http.Dependencies.IDependencyResolver resolver)
            {
                if (isWebApiResolverRegistered)
                {
                    return;
                }

                lock (Lock)
                {
                    if (isWebApiResolverRegistered)
                    {
                        return;
                    }

                    System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = resolver;

                    isWebApiResolverRegistered = true;
                }
            }
        /// <summary>
        /// 初始化autofac
        /// </summary>
        public static void InitAutoFac()
        {
            var build         = new ContainerBuilder();
            var configuration = GlobalConfiguration.Configuration;

            build.RegisterModule(new ServiceModule());

            ///注册webapi 到autofac
            build.RegisterApiControllers(Assembly.GetExecutingAssembly());
            build.RegisterWebApiFilterProvider(configuration);
            build.RegisterWebApiModelBinderProvider();

            var container = build.Build();
            ///DI--wepi
            var apiResolver = new AutofacWebApiDependencyResolver(container);

            ApiResolver = apiResolver;
            GlobalConfiguration.Configuration.DependencyResolver = apiResolver;
        }
        public void SetupWebApiControllerActivator(System.Web.Http.Dependencies.IDependencyResolver resolver, IWindsorContainer container)
        {
            var activator = new WindsorHttpControllerActivator(resolver, container);

            GlobalConfiguration.Configuration.Services.Replace(typeof(System.Web.Http.Dispatcher.IHttpControllerActivator), activator);
        }
示例#18
0
 /// <summary>
 /// Constructs a new WindsorWebApiDependencyResolver with a delegate IDependencyResolver instance
 /// for fallback.
 /// </summary>
 /// <param name="container">IWindsorContainer</param>
 /// <param name="delegateResolver">IDependencyResolver</param>
 public WindsorWebApiDependencyResolver(IWindsorContainer container, System.Web.Http.Dependencies.IDependencyResolver delegateResolver)
 {
     this._container        = container;
     this._delegateResolver = delegateResolver ?? NoDependencyResolver;
 }
示例#19
0
 public static TService GetService <TService>(this System.Web.Http.Dependencies.IDependencyResolver dependencyResolver)
 {
     return((TService)dependencyResolver.GetService(typeof(TService)));
 }
示例#20
0
        static IContainer GetContainer()
        {
            var builder = new ContainerBuilder();

            var assemblies = AppDomain.CurrentDomain.GetAssemblies()
                             .Where(e => e.FullName.Contains("FaceGraphTask") ||
                                    e.FullName.Contains("CQRS")).ToArray();

            builder.RegisterAssemblyTypes(assemblies)
            .Where(t => typeof(ICommand).IsAssignableFrom(t))
            .InstancePerLifetimeScope().AsImplementedInterfaces();


            builder.RegisterAssemblyTypes(assemblies)
            .AsClosedTypesOf(typeof(ICommandValidator <>))
            .AsImplementedInterfaces();


            builder.RegisterAssemblyTypes(assemblies)
            .Where(t => t.BaseType == typeof(HttpApplicationStateBase))
            .AsSelf()
            .AsImplementedInterfaces()
            .InstancePerLifetimeScope();

            builder.RegisterAssemblyTypes(assemblies)
            .Where(t => t.BaseType == typeof(HttpSessionStateBase))
            .AsSelf()
            .AsImplementedInterfaces()
            .InstancePerLifetimeScope();

            builder.RegisterAssemblyTypes(assemblies)
            .Where(t => t == typeof(FileManager))
            .AsSelf()
            .WithParameter("rootPath", "~/app_data/")
            .AsImplementedInterfaces();

            builder.RegisterAssemblyTypes(assemblies)
            .AsClosedTypesOf(typeof(Application <>))
            .AsSelf()
            .AsImplementedInterfaces();

            builder.RegisterAssemblyTypes(assemblies)
            .AsClosedTypesOf(typeof(Session <>))
            .AsSelf()
            .AsImplementedInterfaces();

            builder.RegisterAssemblyTypes(assemblies)
            .AssignableTo <ICacheManager>()
            .AsImplementedInterfaces()
            .As(typeof(ICacheManager));

            builder.RegisterAssemblyTypes(assemblies)
            .Where(t => t.BaseType == typeof(BaseEntity)).InstancePerDependency()
            .AsSelf()
            .AsImplementedInterfaces();


            #region Entity Framework
            builder.RegisterAssemblyTypes(assemblies)
            .AsClosedTypesOf(typeof(Infrastructure.Commands.Interfaces.IFrameWorkCommandHandler <>))
            .AsSelf()
            .AsImplementedInterfaces();

            builder.RegisterAssemblyTypes(assemblies)
            .AssignableTo <ICommandExecuter>()
            .AsImplementedInterfaces()
            //.WithParameter("connectionString", "DefaultConnection")
            .As(typeof(ICommandExecuter));

            builder.RegisterAssemblyTypes(assemblies)
            .AssignableTo <ICommandService>()
            .AsSelf()
            .AsImplementedInterfaces()
            .As(typeof(ICommandService));

            var container = builder.Build();

            builder = new ContainerBuilder();
            builder.RegisterAssemblyTypes(assemblies)
            .AssignableTo <ICommandDispatcher>()
            .AsImplementedInterfaces()
            .As(typeof(ICommandDispatcher))
            .WithParameter("container", container);

            //builder.RegisterAssemblyTypes(assemblies)
            //   .AsClosedTypesOf(typeof(BaseApiController))
            //   .AsSelf()
            //   .AsImplementedInterfaces();

            //builder.RegisterAssemblyTypes(assemblies)
            //  .AsClosedTypesOf(typeof(BaseController))
            //  .AsSelf()
            //  .AsImplementedInterfaces();

            //builder.Update(container);
            #endregion

            builder.RegisterModule(new AutofacWebTypesModule());

            #region Mvc
            // Register dependencies in filter attributes
            builder.RegisterFilterProvider();

            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
            builder.RegisterModelBinderProvider();

            MvcResolver = new AutofacDependencyResolver(container);
            #endregion

            #region Web Api
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            //WebApi resolver.
            WebApiResolver = new AutofacWebApiDependencyResolver(container);
            #endregion

            builder.Update(container);
            return(container);
        }
 /// <summary>
 /// Registers the DependencyResolver implementation with the MVC runtime.
 /// <remarks>
 /// You must override this method in a derived class to control the manner in which the
 /// <see cref="System.Web.Http.Dependencies.IDependencyResolver"/> is registered.
 /// </remarks>
 /// </summary>
 public virtual void RegisterDependencyResolver(System.Web.Http.Dependencies.IDependencyResolver resolver)
 {
     ThreadSafeDependencyResolverRegistrar.Register(resolver);
 }
示例#22
0
 /// <summary>
 /// Provides a registration point for dependency resolvers, using the specified dependency resolver interface as resolver for serives inside this area.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="dependencyResolver">The dependency resolver.</param>
 /// <exception cref="System.ArgumentNullException">context is null</exception>
 public static void SetHttpDependencyResolver(this AreaRegistrationContext context, System.Web.Http.Dependencies.IDependencyResolver dependencyResolver)
 {
     AreaDependencyResolverConfiguration.Register(context.AreaName, dependencyResolver, context.Namespaces);
 }
		/// <summary>
		/// Constructs a new WindsorWebApiDependencyResolver with a delegate IDependencyResolver instance
		/// for fallback.
		/// </summary>
		/// <param name="container">IWindsorContainer</param>
		/// <param name="delegateResolver">IDependencyResolver</param>
		public WindsorWebApiDependencyResolver(IWindsorContainer container, System.Web.Http.Dependencies.IDependencyResolver delegateResolver)
		{
			this._container = container;
			this._delegateResolver = delegateResolver ?? NoDependencyResolver;
		}
 protected virtual void RegisterWebApiDependencyResolver(System.Web.Http.Dependencies.IDependencyResolver resolver)
 {
     // Web Api
     GlobalConfiguration.Configuration.DependencyResolver = resolver;
 }