.net - MySQL 在 Finalize 中抛出 NullReferenceException ......你是如何处理这个问题的?

标签 .net mysql database ado.net finalizer

我在 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/

相关文章:

mysql - key 'groser' 的重复条目 'PRIMARY'

SQL:将数据用作列

.net - .NET Entity Framework 中存在哪些设计模式?

c# - 创建对象后检查是否为 null

c# - 为什么 MessageBox 类在 C# 中没有默认构造函数?

返回 mysql_fetch_assoc() 的 PHP 函数会导致基于索引的数组?

java - 什么是 R3 主机套件?我可以使用它与 .NET 或 Java 连接吗?

java.lang.IllegalStateException : Dialect must be spatially enabled dialect

php - 使用 mySQL 查询仅获取第一行

c# - C#中如何执行sql select语句