public static GeneralTask Create(string id) { switch (XHelper.Load(FileHelper.GetTaskPath(id)).Root.Name.LocalName.ToLowerInvariant()) { case TaskType.FtpUploadTask: return(new FtpUploadTask(id)); case TaskType.CrossAppCopyTask: return(new CrossAppCopyTask(id)); case TaskType.DecompressTask: return(new DecompressTask(id)); default: return(null); } }