Esempio n. 1
0
        /// <summary>
        /// Creates a Rules Engine.
        /// </summary>
        /// <param name="basedOn">Copies specific rules from base Engine</param>
        /// <param name="types">Copies rules for the specified types only.</param>
        public RulesEngine(RulesEngine basedOn, params Type[] types)
        {
            if (types == null)
            {
                throw new ArgumentNullException("types");
            }
            if (basedOn == null)
            {
                throw new ArgumentNullException("basedOn");
            }

            var registry = basedOn._registry.Clone();

            _expressionCache = basedOn._expressionCache;

            foreach (var type in types)
            {
                var invokers = registry.GetInvokers(type);
                foreach (var invoker in invokers)
                {
                    _registry.RegisterInvoker(invoker);
                }
            }
        }
Esempio n. 2
0
 void IRegisterInvoker.RegisterInvoker(IRuleInvoker ruleInvoker)
 {
     registry.RegisterInvoker(ruleInvoker);
 }