/// <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); } } }
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); } } }