.NET Framework源代码中缺少方法

时间:2014-12-26 10:24:17

标签: c# .net

我今天早上一直在浏览.NET Framework源代码,因为我只想检查Dipose()对数据库连接的行为。

但是,查看SqlConnection的.NET Framework源代码(+我已经下载了它),Dispose()中没有定义SqlConnection方法。

但是,使用dotPeek,我可以在SqlConnection上看到Dispose()的实现

我错过了什么?

3 个答案:

答案 0 :(得分:5)

您真正缺少的是SqlConnection.csSqlConnection定义为partial class。这意味着其他文件可以定义成员函数,包括Dispose()。它是定义Dispose()成员函数的其他文件之一。

看看DbConnectionHelper.cs。这在名称空间CONNECTIONOBJECTNAME中定义了一个类NAMESPACE。这些将在构建时被正确的类名和命名空间名称替换,这允许多个DbConnection派生类共享Dispose()实现。

答案 1 :(得分:0)

好像Dispose()方法在SqlConnection中没有具体实现,只是从Component继承。

您可以查看确认该内容的SqlConnection documentation

答案 2 :(得分:-1)

只有实现IDisposable接口的类才能具有Dispose(除非您编写自己的)方法。

SqlConnection类具有Dispose方法,因为它继承了Component

来源:here

您可以找到有关IDisposable接口here

的更多信息