当前位置: 首页>>代码示例>>C#>>正文


C# IServiceLocator.Batch方法代码示例

本文整理汇总了C#中IServiceLocator.Batch方法的典型用法代码示例。如果您正苦于以下问题:C# IServiceLocator.Batch方法的具体用法?C# IServiceLocator.Batch怎么用?C# IServiceLocator.Batch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IServiceLocator的用法示例。


在下文中一共展示了IServiceLocator.Batch方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SetupFilterRegistries

        /// <summary>
        /// Queries the <see cref="IServiceLocator"/> instance for any instances of <see cref="IFilterRegistry"/> to process.
        /// </summary>
        /// <param name="serviceLocator">Current <see cref="IServiceLocator"/> instance for the application.</param>
        public virtual void SetupFilterRegistries(IServiceLocator serviceLocator) {
            var filterRegistries = GetFilterRegistries(serviceLocator);
            if (filterRegistries == null) return;

            var filterList = new List<Filter>();
            var typeList = new List<Type>();

            foreach (var filterRegistry in filterRegistries) {
                var registrations = filterRegistry.GetFilterRegistrations();

                using (serviceLocator.Batch()) {
                    foreach (var registration in registrations) {
                        var filterType = registration.FilterType;

                        // Prevent double registration of the same filter
                        if (typeList.Contains(filterType)) continue;

                        serviceLocator.Register(filterType, filterType);
                        typeList.Add(filterType);
                    }
                }

                filterList.AddRange(registrations);
            }

            typeList.Clear();
            FilterProviders.Providers.Add(new FilterRegistryProvider(serviceLocator, filterList));
        }
开发者ID:calebjenkins,项目名称:mvcturbine,代码行数:32,代码来源:FilterBlade.cs

示例2: UseThisServiceLocator

 private void UseThisServiceLocator(IServiceLocator serviceLocator)
 {
     using (serviceLocator.Batch())
     {
         serviceLocator.Register(serviceLocator);
         context.Set(serviceLocator);
     }
 }
开发者ID:rhwy,项目名称:MvcTurbine.Laziness,代码行数:8,代码来源:LazyResolutionSteps.cs

示例3: ProcessViewEngineProvider

        protected virtual void ProcessViewEngineProvider(IServiceLocator locator) {
            var viewEngineProviders = GetViewEngineProviders(locator);
            if (viewEngineProviders == null || viewEngineProviders.Count == 0) return;

            var viewEngines = GetFilteredList(viewEngineProviders);
            if (viewEngines == null || viewEngines.Count == 0) return;

            using (locator.Batch()) {
                foreach (var engine in viewEngines) {
                    locator.Register(typeof(IViewEngine), engine.Type, engine.Name);
                }
            }
        }
开发者ID:calebjenkins,项目名称:mvcturbine,代码行数:13,代码来源:ViewBlade.cs

示例4: SetupBinderRegistries

        /// <summary>
        /// Queries the <see cref="IServiceLocator"/> instance for any instances of <see cref="ModelBinderRegistry"/> to process.
        /// </summary>
        /// <param name="serviceLocator">Current <see cref="IServiceLocator"/> instance for the application.</param>
        public virtual void SetupBinderRegistries(IServiceLocator serviceLocator) {
            var binderRegistries = GetBinderRegistries(serviceLocator);
            if (binderRegistries == null) return;

            var aggregateCache = new TypeCache();

            foreach (var modelBinderRegistry in binderRegistries) {
                var binderCache = modelBinderRegistry.GetBinderRegistrations();
                if (binderCache == null) continue;

                // We will register auto-register the binders for you
                using (serviceLocator.Batch()) {
                    foreach (var binderType in binderCache.Values) {
                        serviceLocator.Register(binderType, binderType);
                    }
                }

                aggregateCache.Merge(binderCache);
            }

            ModelBinderProviders.BinderProviders.Add(new ModelBinderRegistryProvider(serviceLocator, aggregateCache));
        }
开发者ID:calebjenkins,项目名称:mvcturbine,代码行数:26,代码来源:ModelBinderBlade.cs


注:本文中的IServiceLocator.Batch方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。