/// <summary>
        /// Контейнер фабрик для элемента Правила или его наследников
        /// </summary>
        /// <typeparam name="T1">Елемент правила. Также учитываются все его наследники</typeparam>
        /// <typeparam name="T2">Второе условие</typeparam>
        /// <returns></returns>
        public virtual IRuleSerializerContainer <T1> Container <T1, T2>() where T1 : IRuleElement
        {
            string key = typeof(T1).Name + typeof(T2).Name;

            if (factories.Keys.Contains(key) == true)
            {
                return(factories[key] as RuleSerializerContainerBase <T1>);
            }
            RuleSerializerContainerBase <T1> factory = new RuleXmlSerializerContainer <T1, T2>(this);

            factories.Add(key, factory);
            return(factory);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Контейнер фабрик для элемента Правила или его наследников
        /// </summary>
        /// <typeparam name="T">Елемент правила. Также учитываются все его наследники</typeparam>
        /// <typeparam name="U">Второе условие</typeparam>
        /// <returns></returns>
        public RuleSerializerContainerBase <T> Container <T, U>() where T : RuleElement
        {
            string key = typeof(T).Name + typeof(U).Name;

            if (factories.Keys.Contains(key) == true)
            {
                return(factories[key] as RuleSerializerContainerBase <T>);
            }
            RuleSerializerContainerBase <T> factory = new RuleXmlSerializerContainer <T, U>(this);

            factories.Add(key, factory);
            return(factory);
        }