我正在编写一个WPF应用程序,在某些时候我必须将二进制文件反序列化为单例类。 一切都很好,除非我把一个MessageBox.Show()放在catch子句中,我会在触发的消息中出现。问题是我无法进行调试,并且Console.Writeline()不输出任何内容,而且我还尝试使用Application.Current.Shutdown()关闭应用程序,但应用程序仍在运行。
我的猜测是存在某种错误,我想知道导致问题的原因。
以下是代码:
public void Deserialize(string filename)
{
BinaryReader br = null;
try
{
br = new BinaryReader(new FileStream(filename, FileMode.Open));
//Do deserialization
}
catch (Exception e)
{
MessageBox.Show(e.ToString(), "An error has occured while loading.", MessageBoxButton.OK, MessageBoxImage.Error); //message is being thrown with FileNotFound exception
Console.WriteLine("An error occured:" + e.ToString());//never prints
Application.Current.Shutdown();//never closes application
}
finally
{
br?.Close();
}
}
这个问题似乎与VisualStudio有关,我使用的是2015年的企业版。但它并不总是会发生。