我今天早上一直在浏览.NET Framework源代码,因为我只想检查Dipose()
对数据库连接的行为。
但是,查看SqlConnection的.NET Framework源代码(+我已经下载了它),Dispose()
中没有定义SqlConnection
方法。
但是,使用dotPeek,我可以在SqlConnection上看到Dispose()
的实现
我错过了什么?
答案 0 :(得分:5)
您真正缺少的是SqlConnection.cs
将SqlConnection
定义为partial class
。这意味着其他文件可以定义成员函数,包括Dispose()
。它是定义Dispose()
成员函数的其他文件之一。
看看DbConnectionHelper.cs
。这在名称空间CONNECTIONOBJECTNAME
中定义了一个类NAMESPACE
。这些将在构建时被正确的类名和命名空间名称替换,这允许多个DbConnection
派生类共享Dispose()
实现。
答案 1 :(得分:0)
好像Dispose()
方法在SqlConnection
中没有具体实现,只是从Component继承。
您可以查看确认该内容的SqlConnection documentation。
答案 2 :(得分:-1)