Пример #1
0
        /// <summary>
        /// Init
        /// </summary>
        protected override void Init()
        {
            base.Init();

            ValidationSection section = (ValidationSection)ConfigurationManager.GetSection("hl7ValidationRulesGroup/hl7ValidationRules");

            foreach (MessageRuleElement element in section.MessageRules)
            {
                ISpecificMessageRule rule = ActivateObject <ISpecificMessageRule>(element.Assembly, element.Type);
                if (rule != null)
                {
                    messageRules.Add(rule);
                }
            }

            foreach (PrimitiveRuleElement element in section.PrimitiveTypeRules)
            {
                ISpecificPrimitiveTypeRule rule = ActivateObject <ISpecificPrimitiveTypeRule>(element.Assembly, element.Type);
                if (rule != null)
                {
                    primitiveTypeRules.Add(rule);
                }
            }

            foreach (EncodingRuleElement element in section.EncodingRules)
            {
                ISpecificEncodingRule rule = ActivateObject <ISpecificEncodingRule>(element.Assembly, element.Type);
                if (rule != null)
                {
                    encodingRules.Add(rule);
                }
            }
        }
Пример #2
0
        private void LoadRules(Assembly assembly)
        {
            Type[] classes = assembly.GetTypes();
            foreach (Type t in classes)
            {
                Type[] interfaces = t.GetInterfaces();

                if (interfaces.Contains(typeof(ISpecificEncodingRule)))
                {
                    ISpecificEncodingRule o = (ISpecificEncodingRule)Activator.CreateInstance(t);
                    encodingRules.Add(o);
                }
                else if (interfaces.Contains(typeof(ISpecificMessageRule)))
                {
                    ISpecificMessageRule o = (ISpecificMessageRule)Activator.CreateInstance(t);
                    messageRules.Add(o);
                }
                else if (interfaces.Contains(typeof(ISpecificPrimitiveTypeRule)))
                {
                    ISpecificPrimitiveTypeRule o = (ISpecificPrimitiveTypeRule)Activator.CreateInstance(t);
                    primitiveTypeRules.Add(o);
                }
            }
        }