public static void RemoveFactory(XMLGuidePostModelParcersEnum factoryType)
 {
     if (_factoties.ContainsKey(factoryType))
     {
         _factoties.Remove(factoryType);
     }
 }
 public static void AddFactory(XMLGuidePostModelParcersEnum factoryType, IXMLGuidePostModelParcer factoryEntity)
 {
     if (!_factoties.ContainsKey(factoryType))
     {
         _factoties.Add(factoryType, factoryEntity);
     }
 }
        public static void AddFactory(XMLGuidePostModelParcersEnum factoryType, Type typeOfFactoryEntity)
        {
            if (typeOfFactoryEntity.GetInterfaces().Any(el => el == typeof(IXMLGuidePostModelParcer)))
            {
                var typeConstructor = typeOfFactoryEntity.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[0], null);
                var typeInstance    = typeConstructor.Invoke(null) as IXMLGuidePostModelParcer;

                if (typeInstance != null && !_factoties.ContainsKey(factoryType))
                {
                    _factoties.Add(factoryType, typeInstance);
                }
            }
            else
            {
                throw new ArgumentException(string.Format("Invalid type, expected IXMLGuidePostModelParcer, found: {0}", typeOfFactoryEntity));
            }
        }
 public static IXMLGuidePostModelParcer GetFactory(XMLGuidePostModelParcersEnum factoryType)
 {
     return(_factoties[factoryType]);
 }