【发布时间】:2016-08-16 16:32:50
【问题描述】:
我读过它,它看起来很简单,但我不知道为什么它每次都在 XmlSerializer 行上崩溃,我想知道为什么,因为人们用类似的东西回答了将列表转换为 xml 的问题它似乎对我不起作用!
代码如下:
类:
[Serializable()]
public class Pogos
{
public string Pogo { get; set; }
public DateTime Date { get; set; }
}
每日pogo列表:
public static List<Pogos> DailyPogos = null;
将 Daily Pogo 列表设置为 .xml 中的内容
public static void SetDailyPogos()
{
string path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/DailyPogos.xml");
if (File.Exists(path))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Pogos>));
StreamReader reader = new StreamReader(path);
DailyPogos = (List<Pogos>)serializer.Deserialize(reader);
reader.Close();
foreach (var pogo in DailyPogos)
{
if (pogo.Date.Date != DateTime.Now.Date)
DailyPogos.Remove(pogo);
}
}
else
DailyPogos = new List<Pogos>();
}
将 Daily Pogos (distinct) 保存在 .xml 中
public static void SaveDailyPogos(List<string> pogos)
{
foreach (var pogo in pogos)
{
var matches = DailyPogos.Where(e => e.Pogo.Contains(pogo));
foreach ( var match in matches)
{
DailyPogos.Remove(match);
}
var pog = new Pogos();
pog.Pogo = pogo;
pog.Date = DateTime.Now;
DailyPogos.Add(pog);
}
string path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/DailyPogos.xml");
//create the serialiser to create the xml
XmlSerializer serialiser = new XmlSerializer(typeof(List<Pogos>));
// Create the TextWriter for the serialiser to use
TextWriter filestream = new StreamWriter(path);
//write to the file
serialiser.Serialize(filestream, DailyPogos);
// Close the file
filestream.Close();
}
导致问题的线路(没有错误只是崩溃):
XmlSerializer serializer = new XmlSerializer(typeof(List<Pogos>));
编辑:在这种情况下我非常愚蠢,首先,我可以通过添加一个我不知道为什么我没有的 try catch 来观察异常。可能很累。 Exception 表示由于应用程序的保护级别而失败,通过将“public”添加到程序类来解决此问题。
【问题讨论】:
-
“没有错误只是崩溃”是什么意思?你是在调试器下运行这个吗?打开“中断所有异常”并编辑帖子以显示您获得的托管异常。
-
需要xml样本
-
能否分享完整的
ToString()异常输出,包括异常类型、回溯和消息?
标签: c# asp.net xml serialization