XML中的额外右括号我用这个例子将一些变量保存到xml文件:如何将当前类设置为返回类型Result这是我的设置文件代码:usingSystem;使用System.IO;使用System.Xml.Serialization;命名空间ssscc.Settings{publicclassAppSettings{publicstringReceiptLine1{set;得到;}publicstringReceiptLine2{设置;得到;}publicstringReceiptLine3{设置;得到;}}publicstringReceiptLine5{设置;得到;}publicstringReceiptLine6{设置;得到;}publicboolReceiptLine1Enabled{设置;得到;}publicboolReceiptLine2Enabled{设置;}publicboolReceiptLine4Enabled{设置;得到;}publicboolReceiptLine5Enabled{设置;得到;}publicboolReceiptLine6Enabled{设置;得到;}publicstringGatewayUserName{设置;字符串GatewayId{设置;得到;}privatestaticstringGetSettingsFile(){varexePath=System.Windows.Forms.Application.StartupPath;变量aredDirectory=Path.Combine(exePath,"共享");varsettingsDirectory=Path.Combine(sharedDirectory,"settings");varsettingsFile=Path.Combine(settingsDirectory,"ssscc.xml");如果(!Directory.Exists(sharedDirectory)){Directory.CreateDirectory(sharedDirectory);}if(!Directory.Exists(settingsDirectory)){Directory.CreateDirectory(settingsDirectory);}返回设置文件;}internalvoidSaveSettings(){varserializer=newXmlSerializer(typeof(AppSettings));使用(varstream=File.OpenWrite(GetSettingsFile()))serializer.Serialize((Stream)stream,this);}internalstaticAppSettingsGetInstance(){try{if(!File.Exists(GetSettingsFile()))returnnull;varserializer=newXmlSerializer(typeof(AppSettings));使用(varstream=File.OpenRead(GetSettingsFile())){return(AppSettings)serializer.Deserialize(stream);}}catch(Exceptionex){Console.WriteLine(ex.Message);扔;}}}}当我保存数据时,开始保存正常,并在文件的末尾显示:falsetruefalsefalsefalsefalseasdfasdfasdfsdf当我更新文件并再次保存时,我得到这样的结果:falsetruefalsefalsefalsefalseasdfasdfasdfsdf>最后看到两个>>有人知道为什么它会在我的xml中保存两个>>在文件末尾我的代码出了点问题:这是因为您正在使用File.OpenWrite:对于现有文件,它不会将新文本附加到现有文本。相反,它会用新字符覆盖现有字符。如果用较短的字符串(例如“Secondrun”)覆盖较长的字符串(例如“ThisisatestoftheOpenWritemethod”),文件将包含混合字符串(“SecondruntestoftheOpenWritemethod”)。虽然从您的示例中不清楚,但我怀疑新内容比旧内容短一个字节,因此您会在原始文件中看到右尖括号。我怀疑您应该只使用File.Create。上面是C#学习教程:xml中多出的结束括号分享全部内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注,本文收集自网络,不代表一个职位,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处:
