You have a class and you need to save values to of the class to an xml file to be consumed later on
public class TemplateInformation { public string StoredProcedure { get; set; } public List<string> Parameters { get; set; } public string TemplatePath { get; set; } public string TemplateName { get; set; } public String Title { get; set; } public TemplateInformation() { Parameters = new List<string>(); } }
Save your class values to
public bool SaveTemplate() { var report = new TemplateInformation { StoredProcedure = "ReadReportData", TemplateName = "Report.xls", TemplatePath = @"c:\templates", Title = "Monthly Income Report" }; report.Parameters.Add("DateFrom"); report.Parameters.Add("DateTo"); XmlSerializer xs = new XmlSerializer(typeof(TemplateInformation)); TextWriter tw = new StreamWriter(@"c:\Temp\TemplateInformation.xml"); xs.Serialize(tw, report); return true; }
This is the template content
<TemplateInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <StoredProcedure>ReadReportData</StoredProcedure> <Parameters> <string>DateFrom</string> <string>DateTo</string> </Parameters> <TemplatePath>c:\templates</TemplatePath> <TemplateName>Report.xls</TemplateName> <Title>Monthly Income Report</Title> </TemplateInformation>
To read the content of the xml back to your class
public TemplateInformation ReadTemplate() { TemplateInformation report; string templateName = @"c:\Temp\TemplateInformation.xml"; XmlSerializer xs = new XmlSerializer(typeof(TemplateInformation)); using (var sr = new StreamReader(templateName)) { report = (TemplateInformation)xs.Deserialize(sr); } return report; }