I use this example to save some variables in an XML file:
how to set current class to return type results
This is my code for the settings file:
using System; using System.IO; using System.Xml.Serialization; namespace ssscc.Settings { public class AppSettings { public string ReceiptLine1 { set; get; } public string ReceiptLine2 { set; get; } public string ReceiptLine3 { set; get; } public string ReceiptLine4 { set; get; } public string ReceiptLine5 { set; get; } public string ReceiptLine6 { set; get; } public bool ReceiptLine1Enabled { set; get; } public bool ReceiptLine2Enabled { set; get; } public bool ReceiptLine3Enabled { set; get; } public bool ReceiptLine4Enabled { set; get; } public bool ReceiptLine5Enabled { set; get; } public bool ReceiptLine6Enabled { set; get; } public string GatewayUserName { set; get; } public string GatewayPassword { set; get; } public string GatewayId { set; get; } private static string GetSettingsFile() { var exePath = System.Windows.Forms.Application.StartupPath; var sharedDirectory = Path.Combine(exePath, "shared"); var settingsDirectory = Path.Combine(sharedDirectory, "settings"); var settingsFile = Path.Combine(settingsDirectory, "ssscc.xml"); if (!Directory.Exists(sharedDirectory)) { Directory.CreateDirectory(sharedDirectory); } if (!Directory.Exists(settingsDirectory)) { Directory.CreateDirectory(settingsDirectory); } return settingsFile; } internal void SaveSettings() { var serializer = new XmlSerializer(typeof(AppSettings)); using (var stream = File.OpenWrite(GetSettingsFile())) serializer.Serialize((Stream)stream, this); } internal static AppSettings GetInstance() { try { if (!File.Exists(GetSettingsFile())) return null; var serializer = new XmlSerializer(typeof(AppSettings)); using (var stream = File.OpenRead(GetSettingsFile())) { return (AppSettings)serializer.Deserialize(stream); } } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } } } }
When I save the data, the initial save stops and at the end of the file is displayed:
<?xml version="1.0"?> <AppSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ReceiptLine1 /> <ReceiptLine2 /> <ReceiptLine3 /> <ReceiptLine4 /> <ReceiptLine5 /> <ReceiptLine6 /> <ReceiptLine1Enabled>false</ReceiptLine1Enabled> <ReceiptLine2Enabled>true</ReceiptLine2Enabled> <ReceiptLine3Enabled>false</ReceiptLine3Enabled> <ReceiptLine4Enabled>false</ReceiptLine4Enabled> <ReceiptLine5Enabled>false</ReceiptLine5Enabled> <ReceiptLine6Enabled>false</ReceiptLine6Enabled> <GatewayUserName>asdfasdf</GatewayUserName> <GatewayPassword>asdf</GatewayPassword> <GatewayId>sdf</GatewayId> </AppSettings>
When I update the file and save it again, I get the following:
<?xml version="1.0"?> <AppSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ReceiptLine1 /> <ReceiptLine2 /> <ReceiptLine3 /> <ReceiptLine4 /> <ReceiptLine5 /> <ReceiptLine6 /> <ReceiptLine1Enabled>false</ReceiptLine1Enabled> <ReceiptLine2Enabled>true</ReceiptLine2Enabled> <ReceiptLine3Enabled>false</ReceiptLine3Enabled> <ReceiptLine4Enabled>false</ReceiptLine4Enabled> <ReceiptLine5Enabled>false</ReceiptLine5Enabled> <ReceiptLine6Enabled>false</ReceiptLine6Enabled> <GatewayUserName>asdfasdf</GatewayUserName> <GatewayPassword>asdf</GatewayPassword> <GatewayId>sdf</GatewayId> </AppSettings>>
What does he see at the end >> .
Does anyone see why it saves two >> at the end of my xml file?
And my code errors:
Erocm source share