代码之家  ›  专栏  ›  技术社区  ›  cchampion

单元测试适配器引发异常:…未标记为可序列化

  •  2
  • cchampion  · 技术社区  · 14 年前

    这个错误让我抓狂:

    单元测试适配器引发异常:程序集“zdrCreator,version=1.0.5.1,culture=neutral,publicKeyToken=null”中的类型“com.imagehawk.zdrCreator.config.zdrCreatorConfigException”未标记为可序列化。

    这是一个例外,它唯一使用的地方是像这样抛出新的zdrCreatorConfigException(bla);然后当然是在catch块中。

    刚刚开始…不知道我改变了什么。请帮助

    这是异常的代码,尽管我怀疑它有帮助。

    public class ZDRCreatorConfigException : Exception
        {
            public ZDRCreatorConfigException(string msg) : base(msg)
            {
            }
    
            public ZDRCreatorConfigException() : base()
            {
            }
        }
    

    最新消息:我知道了,毕竟这不是微软的错;虽然我给他们发过脏话,但我相信他们还有很多其他的事情值得去做。我做了一个代码更改,导致这个异常被抛出,并且从未被处理。不知道为什么它提到序列化,除非它是因为不是所有的构造函数都在这里实现。顺便说一句,我终于找到了解决问题的切入点。谢谢!

    3 回复  |  直到 8 年前
        1
  •  1
  •   Mark Byers    14 年前

    我不确定您是否有权访问源代码,但您是否尝试按它的建议添加可序列化属性?

    [Serializable]
    public class ZDRCreatorConfigException : Exception
    {
        ...
    }
    

    如果进行此更改,它将帮助您,因为您将获得原始错误发生的位置的stacktrace,而不是序列化异常失败的位置的stacktrace。如果可能,您应该进行此更改,然后用新的错误消息和stacktrace更新您的问题。

    另外,你应该试着弄清楚为什么会抛出这个异常,我想这是不应该发生的。如果在调试模式下进行测试,则可以将Visual Studio设置为在引发异常时自动中断,以便可以看到发生的情况。

        2
  •  0
  •   SwDevMan81    14 年前

    您可能刚刚删除了可序列化属性:

        [Serializable]
        public class ZDRCreatorConfigException : Exception 
        { 
            public ZDRCreatorConfigException(string msg) : base(msg) 
            { 
            } 
    
            public ZDRCreatorConfigException() : base() 
            { 
            } 
        } 
    
        3
  •  0
  •   William Thomas Waller    8 年前

    为了将来的参考,每次遇到这个问题,都是因为基类没有标记为可序列化。