apo*_*020 4 .net c# dispose idisposable
我想知道是否有关于处理嵌套在另一个一次性物品内的一次性物品的约定(在财产/公共领域,而不是私人成员).例如,DataSet包含DataTable,SqlCommand包含SqlConnection.
显而易见的是,一个班级处理它拥有的所有Disposable物品,剩下的就是其余部分.是否存在这样的惯例?如果是这样,.NET库如何确定谁拥有什么?如何确定是否正在处理嵌套对象?
PS:我一直想知道这个问题,显然有其他问题:调用SqlCommand.Dispose时会出现什么问题?
编辑1:发现配置DataSet,不配置其表.
// Fill dataset from sqldataadpater.
foreach (DataTable dt in dataSet.Tables)
{
dt.Disposed += Program.DisposedEventHandler2;
}
Console.WriteLine("Disposing dataset");
dataSet.Dispose(); //Event not fired here.
Console.WriteLine("Disposing datatables maually");
foreach (DataTable dt in dataSet.Tables)
{
dt.Dispose(); //Event fired here
}
#endregion
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1400 次 |
| 最近记录: |