private TreeNode <TestInfo> Deserialize(XElement testElement) { TreeNode <TestInfo> treeNode; string filePath; filePath = Path.GetTempFileName(); testElement.Save(filePath); TestInfo test = TestInfo.DeserializeFile(filePath, SerializeReportAsEnum.Xml); treeNode = new TreeNode <TestInfo>(test); foreach (XElement childElement in testElement.Elements("test")) { treeNode.AddChild(Deserialize(childElement).Value); } if (File.Exists(filePath)) { File.Delete(filePath); } return(treeNode); }