private static GenericElement GetElementFromXML(string xmlAction) { GenericElement element = new GenericElement(); if (!string.IsNullOrEmpty(arguments.DebugFilePath)) { Logger.Write("Get Element from : " + xmlAction); } XmlReader reader = XmlReader.Create(new StringReader(xmlAction)); if (!reader.ReadToFollowing("ElementType")) { throw new Exception(); } string elementType = reader.ReadString(); switch (elementType) { case "CustomUpdateElements.VariableElement": element = new VariableElement(xmlAction); break; case "CustomUpdateElements.ExecutableElement": element = new ExecutableElement(xmlAction); break; case "CustomUpdateElements.RegistryElement": element = new RegistryElement(xmlAction); break; case "CustomUpdateElements.RegistryKeyElement": element = new RegistryKeyElement(xmlAction); break; case "CustomUpdateElements.ReturnCodeElement": element = new ReturnCodeElement(xmlAction); break; case "CustomUpdateElements.ServiceElement": element = new ServiceElement(xmlAction); break; case "CustomUpdateElements.ScriptElement": element = new ScriptElement(xmlAction); break; case "CustomUpdateElements.PowerManagementElement": element = new PowerManagementElement(xmlAction); break; case "CustomUpdateElements.WaitElement": element = new WaitElement(xmlAction); break; case "CustomUpdateElements.KillProcessElement": element = new KillProcessElement(xmlAction); break; case "CustomUpdateElements.TextFileElement": element = new TextFileElement(xmlAction); break; case "CustomUpdateElements.FolderElement": element = new FolderElement(xmlAction); break; case "CustomUpdateElements.FileElement": element = new FileElement(xmlAction); break; default: break; } return(element); }