public void When_getting_controller_attributes_then_builds_up_instance() { using (var container = new UnityContainer()) { // Arrange var someInstance = new SomeClass(); container.RegisterInstance <ISomeInterface>(someInstance); container.RegisterType <TestFilterAttribute>(new InjectionProperty("Some")); var context = new ControllerContext { Controller = new ControllerWithTypeAttribute() }; var controllerDescriptor = new ReflectedControllerDescriptor(context.Controller.GetType()); var action = context.Controller.GetType().GetMethod("MyActionMethod"); var actionDescriptor = new ReflectedActionDescriptor(action, "MyActionMethod", controllerDescriptor); var provider = new UnityFilterAttributeFilterProvider(container); // Act Filter filter = provider.GetFilters(context, actionDescriptor).Single(); // Assert TestFilterAttribute attrib = filter.Instance as TestFilterAttribute; Assert.IsNotNull(attrib); Assert.AreEqual(FilterScope.Controller, filter.Scope); Assert.AreEqual(1234, filter.Order); Assert.AreSame(someInstance, attrib.Some); } }
public void Configuration(IAppBuilder app) { UnityConfig.SetupUnityContainer(app); var unityFilterAttributeFilterProvider = new UnityFilterAttributeFilterProvider(UnityConfig.Container); FilterProviders.Providers.Add(unityFilterAttributeFilterProvider); AuthConfig.ConfigureAuth(app); }
public static void RegisterUnityFilterExtension(IUnityContainer container) { IFilterProvider filterProvider = FilterProviders.Providers.Single(p => p is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(filterProvider); var unityFilterAttributeFilterProvider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(unityFilterAttributeFilterProvider); }
/// <summary> /// Register a Unity filter attribute filter provider. /// </summary> public void Register() { // Remove standard FilterAttributeFilterProvider System.Web.Mvc.FilterProviders.Providers.Remove(System.Web.Mvc.FilterProviders.Providers.Single(f => f is System.Web.Mvc.FilterAttributeFilterProvider)); var container = DependencyResolver.Current as IContainerProvider; var provider = new UnityFilterAttributeFilterProvider(container); // Add the Unity FilterAttributeFilterProvider in its place System.Web.Mvc.FilterProviders.Providers.Add(provider); }
public static IUnityContainer Compose() { var container = new UnityContainer(); container.AddNewExtension <RepositoryContainerExtension>(); container.AddNewExtension <ServiceContainerExtension>(); container.AddNewExtension <DbContextContainerExtension>(); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); return(container); }
private void RegisterDependencyResolver() { var container = new UnityContainer(); container.RegisterType <IMembershipService, EFMembershipService>(); container.RegisterType <IRepositoryPermissionService, EFRepositoryPermissionService>(); container.RegisterType <IFormsAuthenticationService, FormsAuthenticationService>(); container.RegisterType <ITeamRepository, EFTeamRepository>(); container.RegisterType <IRepositoryRepository, EFRepositoryRepository>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); }
public static void RegisterComponents() { var container = new UnityContainer(); // register all your components with the container here // it is NOT necessary to register your controllers // e.g. container.RegisterType<ITestService, TestService>(); container.RegisterType <IFeatureOptions, FeatureOptions>(); container.RegisterType <IFeatureContext, FeatureContext>(); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container); }
private static void RegisterDependencyResolver() { var container = new UnityContainer().AddExtension(new UnityDecoratorContainerExtension()); container.RegisterType <IMembershipService, EFMembershipService>(); container.RegisterType <IRepositoryPermissionService, EFRepositoryPermissionService>(); container.RegisterType <IFormsAuthenticationService, FormsAuthenticationService>(); container.RegisterType <ITeamRepository, EFTeamRepository>(); container.RegisterType <IRepositoryRepository, EFRepositoryRepository>(); container.RegisterType <IGitRepositoryLocator, ConfigurationBasedRepositoryLocator>( new InjectionFactory((ctr, type, name) => { return(new ConfigurationBasedRepositoryLocator(UserConfiguration.Current.Repositories)); }) ); container.RegisterInstance( new GitServiceExecutorParams() { GitPath = GetRootPath(ConfigurationManager.AppSettings["GitPath"]), GitHomePath = GetRootPath(ConfigurationManager.AppSettings["GitHomePath"]), RepositoriesDirPath = UserConfiguration.Current.Repositories, }); if (AppSettings.IsPushAuditEnabled) { EnablePushAuditAnalysis(container); } container.RegisterType <IGitService, GitServiceExecutor>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); }
//public static void RegisterGlobalFilters(GlobalFilterCollection filters) //{ // // filters.Add(new HandleErrorAttribute()); // filters.Add(new HandleErrorWithLog4netAttribute()); //} protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); BundleTable.EnableOptimizations = true; //注册unity var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); IUnityContainer container = UnityContainerFactory.Instance.CurrentContainer; var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider);//为Filter加入支持Unity的Provider DependencyResolver.SetResolver(new UnityDependencyResolver(container)); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); //start: unity support in filters var oldProvider = FilterProviders.Providers.Single( f => f is FilterAttributeFilterProvider ); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(UnityConfig.GetConfiguredContainer()); FilterProviders.Providers.Add(provider); //end: unity support in filters //WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); Logger.Initialize(); }
private static void RegisterDependencyResolver() { var container = new UnityContainer() .AddExtension(new UnityDecoratorContainerExtension()); container.RegisterType <IMembershipService, EFMembershipService>(); container.RegisterType <IRepositoryPermissionService, EFRepositoryPermissionService>(); container.RegisterType <IFormsAuthenticationService, FormsAuthenticationService>(); container.RegisterType <ITeamRepository, EFTeamRepository>(); container.RegisterType <IRepositoryRepository, EFRepositoryRepository>(); container.RegisterType <IGitRepositoryLocator, ConfigurationBasedRepositoryLocator>( new InjectionFactory((ctr, type, name) => { return(new ConfigurationBasedRepositoryLocator(UserConfiguration.Current.Repositories)); }) ); container.RegisterInstance(new GitServiceExecutorParams() { GitPath = Path.IsPathRooted(ConfigurationManager.AppSettings["GitPath"]) ? ConfigurationManager.AppSettings["GitPath"] : HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["GitPath"]), RepositoriesDirPath = UserConfiguration.Current.Repositories, }); var isReceivePackRecoveryProcessEnabled = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["RecoveryDataPath"]); if (isReceivePackRecoveryProcessEnabled) { // git service execution durability registrations to enable receive-pack hook execution after failures container.RegisterType <IGitService, DurableGitServiceResult>(); container.RegisterType <IHookReceivePack, ReceivePackRecovery>(); container.RegisterType <IRecoveryFilePathBuilder, AutoCreateMissingRecoveryDirectories>(); container.RegisterType <IRecoveryFilePathBuilder, OneFolderRecoveryFilePathBuilder>(); container.RegisterInstance(new NamedArguments.FailedPackWaitTimeBeforeExecution(TimeSpan.FromSeconds(5 * 60))); container.RegisterInstance(new NamedArguments.ReceivePackRecoveryDirectory( Path.IsPathRooted(ConfigurationManager.AppSettings["RecoveryDataPath"]) ? ConfigurationManager.AppSettings["RecoveryDataPath"] : HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["RecoveryDataPath"]))); } // base git service executor container.RegisterType <IGitService, ReceivePackParser>(); container.RegisterType <IGitService, GitServiceExecutor>(); container.RegisterType <GitServiceResultParser, GitServiceResultParser>(); // receive pack hooks container.RegisterType <IHookReceivePack, AuditPusherToGitNotes>(); container.RegisterType <IHookReceivePack, NullReceivePackHook>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); // run receive-pack recovery if possible if (isReceivePackRecoveryProcessEnabled) { var recoveryProcess = container.Resolve <ReceivePackRecovery>(new ParameterOverride( "failedPackWaitTimeBeforeExecution", new NamedArguments.FailedPackWaitTimeBeforeExecution(TimeSpan.FromSeconds(0)))); // on start up set time to wait = 0 so that recovery for all waiting packs is attempted try { recoveryProcess.RecoverAll(); } catch { /* don't let a failed recovery attempt stop start-up process */ } finally { if (recoveryProcess != null) { container.Teardown(recoveryProcess); } } } }
private static void RegisterDependencyResolver() { var container = new UnityContainer().AddExtension(new UnityDecoratorContainerExtension()); container.RegisterType<IMembershipService, EFMembershipService>(); container.RegisterType<IRepositoryPermissionService, EFRepositoryPermissionService>(); container.RegisterType<IFormsAuthenticationService, FormsAuthenticationService>(); container.RegisterType<ITeamRepository, EFTeamRepository>(); container.RegisterType<IRepositoryRepository, EFRepositoryRepository>(); container.RegisterType<IGitRepositoryLocator, ConfigurationBasedRepositoryLocator>( new InjectionFactory((ctr, type, name) => { return new ConfigurationBasedRepositoryLocator(UserConfiguration.Current.Repositories); }) ); container.RegisterInstance( new GitServiceExecutorParams() { GitPath = GetRootPath(ConfigurationManager.AppSettings["GitPath"]), GitHomePath = GetRootPath(ConfigurationManager.AppSettings["GitHomePath"]), RepositoriesDirPath = UserConfiguration.Current.Repositories, }); if (AppSettings.IsPushAuditEnabled) { EnablePushAuditAnalysis(container); } container.RegisterType<IGitService, GitServiceExecutor>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); }
private void RegisterDependencyResolver() { var container = new UnityContainer(); container.RegisterType<IMembershipService, EFMembershipService>(); container.RegisterType<IRepositoryPermissionService, EFRepositoryPermissionService>(); container.RegisterType<IFormsAuthenticationService, FormsAuthenticationService>(); container.RegisterType<ITeamRepository, EFTeamRepository>(); container.RegisterType<IRepositoryRepository, EFRepositoryRepository>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); }
private static void RegisterDependencyResolver() { var container = new UnityContainer(); /* * The UnityDecoratorContainerExtension breaks resolving named type registrations, like: * * container.RegisterType<IMembershipService, ADMembershipService>("ActiveDirectory"); * container.RegisterType<IMembershipService, EFMembershipService>("Internal"); * IMembershipService membershipService = container.Resolve<IMembershipService>(AuthenticationSettings.MembershipService); * * Until this issue is resolved, the following two switch hacks will have to do */ switch (AuthenticationSettings.MembershipService.ToLowerInvariant()) { case "activedirectory": container.RegisterType <IMembershipService, ADMembershipService>(); container.RegisterType <IRoleProvider, ADRoleProvider>(); container.RegisterType <ITeamRepository, ADTeamRepository>(); container.RegisterType <IRepositoryRepository, ADRepositoryRepository>(); container.RegisterType <IRepositoryPermissionService, RepositoryPermissionService>(); break; case "internal": container.RegisterType <IMembershipService, EFMembershipService>(); container.RegisterType <IRoleProvider, EFRoleProvider>(); container.RegisterType <ITeamRepository, EFTeamRepository>(); container.RegisterType <IRepositoryRepository, EFRepositoryRepository>(); container.RegisterType <IRepositoryPermissionService, RepositoryPermissionService>(); break; default: throw new ArgumentException("Missing declaration in web.config", "MembershipService"); } switch (AuthenticationSettings.AuthenticationProvider.ToLowerInvariant()) { case "windows": container.RegisterType <IAuthenticationProvider, WindowsAuthenticationProvider>(); break; case "cookies": container.RegisterType <IAuthenticationProvider, CookieAuthenticationProvider>(); break; case "federation": container.RegisterType <IAuthenticationProvider, FederationAuthenticationProvider>(); break; default: throw new ArgumentException("Missing declaration in web.config", "AuthenticationProvider"); } container.RegisterType <IGitRepositoryLocator, ConfigurationBasedRepositoryLocator>( new InjectionFactory((ctr, type, name) => { return(new ConfigurationBasedRepositoryLocator(UserConfiguration.Current.Repositories)); }) ); container.RegisterInstance( new GitServiceExecutorParams() { GitPath = GetRootPath(ConfigurationManager.AppSettings["GitPath"]), GitHomePath = GetRootPath(ConfigurationManager.AppSettings["GitHomePath"]), RepositoriesDirPath = UserConfiguration.Current.Repositories, }); container.RegisterType <IDatabaseResetManager, DatabaseResetManager>(); if (AppSettings.IsPushAuditEnabled) { EnablePushAuditAnalysis(container); } container.RegisterType <IGitService, GitServiceExecutor>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); }
private static void RegisterDependencyResolver() { var container = new UnityContainer().AddExtension(new UnityDecoratorContainerExtension()); /* The UnityDecoratorContainerExtension breaks resolving named type registrations, like: container.RegisterType<IMembershipService, ADMembershipService>("ActiveDirectory"); container.RegisterType<IMembershipService, EFMembershipService>("Internal"); IMembershipService membershipService = container.Resolve<IMembershipService>(AuthenticationSettings.MembershipService); Until this issue is resolved, the following two switch hacks will have to do */ switch (AuthenticationSettings.MembershipService.ToLowerInvariant()) { case "activedirectory": container.RegisterType<IMembershipService, ADMembershipService>(); container.RegisterType<IRoleProvider, ADRoleProvider>(); container.RegisterType<ITeamRepository, ADTeamRepository>(); container.RegisterType<IRepositoryRepository, ADRepositoryRepository>(); container.RegisterType<IRepositoryPermissionService, ADRepositoryPermissionService>(); break; case "internal": container.RegisterType<IMembershipService, EFMembershipService>(); container.RegisterType<IRoleProvider, EFRoleProvider>(); container.RegisterType<ITeamRepository, EFTeamRepository>(); container.RegisterType<IRepositoryRepository, EFRepositoryRepository>(); container.RegisterType<IRepositoryPermissionService, EFRepositoryPermissionService>(); break; default: throw new ArgumentException("Missing declaration in web.config", "MembershipService"); } switch (AuthenticationSettings.AuthenticationProvider.ToLowerInvariant()) { case "windows": container.RegisterType<IAuthenticationProvider, WindowsAuthenticationProvider>(); break; case "cookies": container.RegisterType<IAuthenticationProvider, CookieAuthenticationProvider>(); break; case "federation": container.RegisterType<IAuthenticationProvider, FederationAuthenticationProvider>(); break; default: throw new ArgumentException("Missing declaration in web.config", "AuthenticationProvider"); } container.RegisterType<IGitRepositoryLocator, ConfigurationBasedRepositoryLocator>( new InjectionFactory((ctr, type, name) => { return new ConfigurationBasedRepositoryLocator(UserConfiguration.Current.Repositories); }) ); container.RegisterInstance( new GitServiceExecutorParams() { GitPath = GetRootPath(ConfigurationManager.AppSettings["GitPath"]), GitHomePath = GetRootPath(ConfigurationManager.AppSettings["GitHomePath"]), RepositoriesDirPath = UserConfiguration.Current.Repositories, }); if (AppSettings.IsPushAuditEnabled) { EnablePushAuditAnalysis(container); } container.RegisterType<IGitService, GitServiceExecutor>(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); var oldProvider = FilterProviders.Providers.Single(f => f is FilterAttributeFilterProvider); FilterProviders.Providers.Remove(oldProvider); var provider = new UnityFilterAttributeFilterProvider(container); FilterProviders.Providers.Add(provider); }