我在 64 位 Windows 上使用带有 .Net 连接器的 MySQL。出于某种原因,Mysql 在 Finalize 中抛出 NullReferenceException。这就是问题here似乎是由于描述的错误 here .这个错误是在 6.22 中报告的,但我也遇到了 6.23 的问题,所以显然它没有修复。
我将 MySQL 与辅助类一起使用,并通过实例化连接和 Mysqlcommand 对象。
有人知道我需要更改代码的哪一部分来解决这个问题吗?因为即使这是 Mysql 中的一个错误,这也不是普遍的,因为我在其他项目中没有遇到这个问题。 MySQL 错误报告也没有详细说明如何重现它。
有什么建议吗?
最佳答案
如果您在 MySqlConnection
上调用 Dispose
(或将其包装在 using
中),那么理论上不应调用终结器,至少如果 MySqlConnection
已正确实现。
如果您正在这样做并且它仍然被调用,那么您必须查看源代码并查看它是否在做任何有用的事情。如果没有,您可以对其调用 GC.SuppressFinalize()
。如果是,您可以将 MySqlConnection
子类化,覆盖其 Finalize()
方法并吞下基方法抛出的异常。显然,这两种方法都是主要的 hack,并且只是解决方法,而不是修复。
关于.net - MySQL 在 Finalize 中抛出 NullReferenceException ......你是如何处理这个问题的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2987124/