Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS调试器赢得';t进入XML反序列化器构造函数_C#_Visual Studio 2010_Debugging_Xml Deserialization_Step Into - Fatal编程技术网

C# VS调试器赢得';t进入XML反序列化器构造函数

C# VS调试器赢得';t进入XML反序列化器构造函数,c#,visual-studio-2010,debugging,xml-deserialization,step-into,C#,Visual Studio 2010,Debugging,Xml Deserialization,Step Into,背景 我有一个序列化为XML文件的类,因此用户可以更改一些启动设置。该类有一个枚举,我希望反序列化程序接受name或int值作为有效值 protected MyClass(SerializationInfo info, StreamingContext context) { // want to Step Into right here try { logLevel = (Logger.Level)info.GetValue("LogLevel", typeof(Logger.

背景

我有一个序列化为XML文件的类,因此用户可以更改一些启动设置。该类有一个枚举,我希望反序列化程序接受name或int值作为有效值

protected MyClass(SerializationInfo info, StreamingContext context) {
  // want to Step Into  right here
  try {
    logLevel = (Logger.Level)info.GetValue("LogLevel", typeof(Logger.Level));
  }
  catch(Exception) {
    logLevel = (Logger.Level)info.GetValue("LogLevel", typeof(Int32));
  }
  …
它不起作用,XML deserialize()仍引发异常,表示“0”或“1”等不是该类型的有效值。因此,我自然会尝试通过步骤(F11)调试行
MyClass mc=(MyClass)xmlSerializer.Deserialize(filepath)

进入不进入预期代码

但是Visual Studio跳到的下一行是类的默认构造函数MyClass()的开头,而不是MyClass(SerializationInfo,StreamingContext)

因此,我通过该构造函数(它分配与XML文件无关的默认值,据我所知根本不应该被调用)执行F11,当它跳出构造函数时,我会像以前一样出现异常,显然我从来没有运行过我编写的反序列化代码

我甚至试着在我要调试的代码的开头放上一个
System.Diagnostics.Debugger.Launch()
.Break()
,Visual Studio 2010只是忽略了它


是否存在Visual Studio无法或不会跟踪反序列化构造函数的某些方面,或者有什么问题?

能否再发布一些代码?您遇到了什么异常?是否确保已将调试器设置为调试本机代码和托管代码?根据我的经验,每当调试器跳过我想要进入的源代码时,都是因为没有设置其中一个选项。