예제 #1
0
        /// <summary>
        ///     Application startup.
        /// </summary>
        protected void Application_Start()
        {
            XmlConfigurator.Configure();

            AutoMapper.Mapper.Initialize(c =>
            {
                c.AddProfile <ModelMappingProfile>();
            });


            // Container
            injectablePropertiesCache = new TypePropertyDescriptorCache();
            container = InitializeContainer();

            // MVC
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new RazorViewEngine());

            ModelBinders.Binders.DefaultBinder = new SharpModelBinder();
            FilterProviders.Providers.InstallMvcFilterProvider(container, injectablePropertiesCache);
            ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));

            AreaRegistration.RegisterAllAreas();

            // WebAPI
            GlobalConfiguration.Configure(cfg => WebApiConfig.Register(cfg, container, injectablePropertiesCache));

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
        public static IWindsorContainer InstallMvcFilterProvider(
            [NotNull] this FilterProviderCollection filterProviders, [NotNull] IWindsorContainer container,
            [CanBeNull] TypePropertyDescriptorCache propertyDescriptorCache)
        {
            if (filterProviders == null)
            {
                throw new ArgumentNullException(nameof(filterProviders));
            }
            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }
            var attributeFilterProviders = filterProviders.OfType <FilterAttributeFilterProvider>().ToArray();

            foreach (var attributeFilterProvider in attributeFilterProviders)
            {
                filterProviders.Remove(attributeFilterProvider);
            }
            filterProviders.Add(new WindsorFilterAttributeProvider(container, propertyDescriptorCache));
            return(container);
        }
 public TypePropertyDescriptorCacheTests()
 {
     _cache = new TypePropertyDescriptorCache();
 }
 public void SetUp()
 {
     _cache = new TypePropertyDescriptorCache();
 }
예제 #5
0
        public static void Register(HttpConfiguration config, IWindsorContainer container, TypePropertyDescriptorCache propertyDescriptorCache)
        {
            // Web API configuration and services
            config.UseWindsor(container, propertyDescriptorCache);


            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
        }
예제 #6
0
 protected override void Initialize(WindsorContainer container)
 {
     this.propertyCache = new TypePropertyDescriptorCache();
 }
예제 #7
0
 public void SetUp()
 {
     _cache = new TypePropertyDescriptorCache();
 }
 protected override void Initialize(WindsorContainer container)
 {
     this.propertyCache = new TypePropertyDescriptorCache();
 }