コード例 #1
0
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            ViewEngines.Engines.Clear();

            var settings = new SparkSettings()
                           .SetAutomaticEncoding(true)
                           .AddNamespace("Microsoft.Web.Mvc")
                           .AddNamespace("System")
                           .AddNamespace("System.Collections.Generic")
                           .AddNamespace("System.Linq")
                           .AddNamespace("System.Web.Mvc")
                           .AddNamespace("System.Web.Mvc.Html")
                           .AddNamespace("WhoCanHelpMe.Framework.Extensions")
                           .AddNamespace("WhoCanHelpMe.Web.Code");

            // Add all namespaces from controllers project.
            typeof(HomeController).Assembly
            .GetExportedTypes()
            .Select(t => t.Namespace)
            .Distinct()
            .ToList()
            .ForEach(n => settings.AddNamespace(n));

            var services = SparkEngineStarter.CreateContainer(settings);

            SparkEngineStarter.RegisterViewEngine(services);
        }
コード例 #2
0
ファイル: ThemedViewFactory.cs プロジェクト: yhtsnda/spark
        public ThemedViewFactory()
        {
            var container = SparkEngineStarter.CreateContainer();

            _defaultViewFolder = container.GetService <IViewFolder>();
            _defaultEngine     = container.GetService <IViewEngine>();
        }
コード例 #3
0
ファイル: Application.cs プロジェクト: yhtsnda/spark
        public void RegisterViewEngine(ICollection <IViewEngine> engines)
        {
            var services = SparkEngineStarter.CreateContainer();

            services.AddFilter(ThemeDescriptorFilter.For(GetTheme));
            SparkEngineStarter.RegisterViewEngine(engines, services);
        }
コード例 #4
0
ファイル: ThemedViewFactory.cs プロジェクト: yhtsnda/spark
        public void AddTheme(string name)
        {
            IViewFolder themeFolder = new VirtualPathProviderViewFolder("~/Themes/" + name);

            themeFolder = themeFolder.Append(_defaultViewFolder);

            var container = SparkEngineStarter.CreateContainer();

            container.SetService(themeFolder);
            _themedEngines.Add(name, container.GetService <IViewEngine>());
        }
コード例 #5
0
        protected void InstallDefaultViewEngine()
        {
            // install custom AreaDescriptorBuilder to support MVC2 areas
            var services = SparkEngineStarter.CreateContainer();

            services.SetServiceBuilder <IDescriptorBuilder>(c => CreateSparkDescriptorBuilder());
            services.SetService <ISparkSettings>(CreateSparkSettings());
            SparkEngineStarter.RegisterViewEngine(services);

            var views = Path.Combine(Server.MapPath("~"), "bin", "Ascend.Web.Views.dll");

            if (File.Exists(views))
            {
                var factory = services.GetService <IViewEngine>() as SparkViewFactory;
                factory.Engine.LoadBatchCompilation(Assembly.LoadFile(views));
            }
        }
コード例 #6
0
        protected void InstallCssViewEngine()
        {
            // replace the standard '#' spark statement marker with something
            // that no css line ever starts with
            var settings = CreateSparkSettings();

            settings.StatementMarker = ">";

            // install custom AreaDescriptorBuilder to support MVC2 areas, then
            // apply the css filter, which just replaces all .spark extensions
            // with .css extensions.
            var builder  = CreateSparkDescriptorBuilder();
            var services = SparkEngineStarter.CreateContainer();

            services.SetServiceBuilder <IDescriptorBuilder>(c => builder);
            services.SetService <ISparkSettings>(settings);
            SparkEngineStarter.RegisterViewEngine(services);
        }
コード例 #7
0
        public void CreatingViewEngineWithSimpleContainer()
        {
            var settings  = new SparkSettings().AddNamespace("System.Web.Mvc.Html");
            var container = SparkEngineStarter.CreateContainer(settings);

            var viewFactory          = (SparkViewFactory)container.GetService <IViewEngine>();
            var viewEngine           = container.GetService <ISparkViewEngine>();
            var viewFolder           = container.GetService <IViewFolder>();
            var descriptorBuilder    = container.GetService <IDescriptorBuilder>();
            var cacheServiceProvider = container.GetService <ICacheServiceProvider>();
            var viewActivatorFactory = container.GetService <IViewActivatorFactory>();

            Assert.AreSame(settings, viewFactory.Settings);
            Assert.AreSame(settings, viewEngine.Settings);
            Assert.AreSame(viewEngine, viewFactory.Engine);
            Assert.AreSame(viewFolder, viewEngine.ViewFolder);
            Assert.AreSame(viewFolder, viewFactory.ViewFolder);
            Assert.AreSame(descriptorBuilder, viewFactory.DescriptorBuilder);
            Assert.AreSame(cacheServiceProvider, viewFactory.CacheServiceProvider);
            Assert.AreSame(viewActivatorFactory, viewFactory.ViewActivatorFactory);
        }