【发布时间】:2015-10-23 13:34:48
【问题描述】:
在我极其简化的代码示例中,我的 Foo() 方法调用 GetXmlDataSource(),它返回一个 XmlDataSource。 CA2000 说我应该在失去范围之前Dispose() 一个 XmlDatasource。
- 我应该将每个
XmlDataSource包装在 using 语句中吗? - 我应该在下方使用
try/catch/finally,在上方使用using? - 我是否有效地拥有两个
XmlDataSource对象,一个在上层方法中,一个在下层方法中?
我对这方面的语言行为有点模糊,我想成为一个好男孩。
void Foo()
{
XmlDataSource xds = GetXmlDataSource();
}
XmlDataSource GetXmlDataSource()
{
XmlDataSource xmlDataSource = new XmlDataSource();
return xmlDataSource;
}
【问题讨论】:
-
你的最后一个问题:不,它们是引用类型,所以它只有一个。
-
完成后,您应该在
Foo方法中处理该对象。如果代码分析抱怨GetXmlDataSource,请尝试将其命名为CreateXmlDataSource,看看是否有区别。
标签: c# dispose xmldatasource