Exemple #1
0
 private void RegisterMergeDecorator()
 {
     foreach (var orderAware in OrderedRegistry.GetRegisteredOrderedAware <IResultProcessEngine>())
     {
         var processEngine = CreateProcessEngine(orderAware.GetType());
         var ruleType      = orderAware.GetGenericType();
         rules.Where(o => ruleType.IsInstanceOfType(o)).ToList().ForEach(rule => merger.RegisterProcessEngine(rule, processEngine));
     }
 }
Exemple #2
0
        /// <summary>
        /// 注册路由装饰器
        /// </summary>
        private void RegisterRouteDecorator()
        {
            var registeredOrderedAware = OrderedRegistry.GetRegisteredOrderedAware <IRouteDecorator>();

            foreach (var routeDecorator in registeredOrderedAware)
            {
                // var decorator = CreateRouteDecorator(routeDecorator.GetType());
                var ruleType = routeDecorator.GetGenericType();
                foreach (var rule in _rules.Where(rule => !rule.GetType().IsAbstract&& ruleType.IsInstanceOfType(rule)))
                {
                    _router.RegisterDecorator(rule, routeDecorator);
                }
            }
        }
Exemple #3
0
        // //创建路由装饰器
        //  private IRouteDecorator CreateRouteDecorator(Type routeDecoratorType)
        //  {
        //      try
        //      {
        //          return (IRouteDecorator)Activator.CreateInstance(routeDecoratorType);
        //      }
        //      catch (Exception e)
        //      {
        //          throw new ShardingException($"Can not find public default constructor for route decorator {routeDecoratorType}", e);
        //      }
        //  }
        private void RegisterRewriteDecorator()
        {
            var rewriteContextDecorators = OrderedRegistry.GetRegisteredOrderedAware <ISqlRewriteContextDecorator>();

            foreach (var rewriteContextDecorator in rewriteContextDecorators)
            {
                // var decorator = CreateRewriteDecorator(orderAware.GetType());
                var ruleType = rewriteContextDecorator.GetGenericType();
                foreach (var rule in _rules.Where(rule => !rule.GetType().IsAbstract&& ruleType.IsInstanceOfType(rule)))
                {
                    _rewriter.RegisterDecorator(rule, rewriteContextDecorator);
                }
            }
        }