有一个包含记录器字段的IDisposable:
class DoesNotDisposeMember : IDisposable {
public IDisposable Logger { get; set; }
public void Dispose ()
{
logger = null;
}
}Gendarme报告有一个DisposableFieldsShouldBeDisposedRule-Defect,但我不想处理这个记录器。
有谁可以帮我?
发布于 2010-12-27 20:44:38
设置您不想处理它的原因;如果您不想处理它,那么您可能不应该将它存储在IDisposable成员中。该接口的唯一实际目的是表示/启用要处理的项。
如果是日志记录对象,是否没有其他通用基接口/类可以使用,例如从Stream或StreamWriter派生的基接口/类
既然我已经写好了,我当然会觉得这仍然包括IDisposable在层次结构中...我想这让我们回到了我说过的我会把它放在一边:
为什么要在这里设置一个您不打算处理的变量?如果您要在其他地方处理它,您可能也应该在那里使用它。包装记录器对象的代码应该处理它的所有功能,包括向支持日志记录的模型/业务对象公开单独的接口。
基本上,如果您将日志封装在另一个对象中,则不应该在该对象外部引用内部日志记录流对象。如果您没有在其他地方封装日志记录,那么这个类应该适当地处理它。
https://stackoverflow.com/questions/4538696
复制相似问题