我創建了這個類,它將追加到名爲Email Alerts h1,body和id的XML。然而,即時通訊從一開始運行這個文件(當我調用LoadFromFile時),當文件不存在 - 所以我們將不得不創建一個文件並開始記錄它。XmlSerializer/Deserialize in C#
public class EMailAlert
{
public string h1 { get; set; }
public string body { get; set; }
public string idList { get; set; }
public void Save(string fileName)
{
using (var stream = new FileStream(fileName, FileMode.Create))
{
var XML = new XmlSerializer(typeof(EMailAlert));
XML.Serialize(stream, this);
}
}
public static EMailAlert LoadFromFile(string fileName)
{
if (!File.Exists(fileName))
{
var file = new FileInfo(fileName);
file.Directory.Create();
var xmlFile = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Email Logger"));
xmlFile.Add(new XElement("EmailAlerts"));
xmlFile.Save(fileName);
}
using (var stream = new FileStream(fileName, FileMode.Open))
{
var XML = new XmlSerializer(typeof(EMailAlert));
return (EMailAlert)XML.Deserialize(stream);
}
}
}
當我運行這段代碼(有沒有XML文件 - 因此它會創建一個XML文件,然後將它拋出這個錯誤{"<EmailAlerts xmlns=''> was not expected."}
下面是xml文件看起來像
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--Email Logger-->
<EmailAlerts />
不知道爲什麼當我打電話給LoadFromFile時它沒有發送空電子郵件警告
EmailAlerts!= EmailAlert。聽起來你想要序列化一系列警報,這與你寫的內容並不相近。 –
是的你是對的我需要一個序列化列表。我怎麼去解決這個問題。對不起,我是新手 – lynx
添加一個名爲EmailAlerts的類,這樣你實際上可以存儲一系列警報,這將是最明顯的下一步。 –