首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我不想处理的字段上避免"DisposableFieldsShouldBeDisposedRule“缺陷?

如何在我不想处理的字段上避免"DisposableFieldsShouldBeDisposedRule“缺陷?
EN

Stack Overflow用户
提问于 2010-12-27 20:40:31
回答 1查看 108关注 0票数 0

有一个包含记录器字段的IDisposable:

代码语言:javascript
复制
class DoesNotDisposeMember : IDisposable {
  public IDisposable Logger { get; set; }

  public void Dispose ()
  {
    logger = null;
  }
}

Gendarme报告有一个DisposableFieldsShouldBeDisposedRule-Defect,但我不想处理这个记录器。

有谁可以帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-27 20:44:38

设置您不想处理它的原因;如果您不想处理它,那么您可能不应该将它存储在IDisposable成员中。该接口的唯一实际目的是表示/启用要处理的项。

如果是日志记录对象,是否没有其他通用基接口/类可以使用,例如从StreamStreamWriter派生的基接口/类

既然我已经写好了,我当然会觉得这仍然包括IDisposable在层次结构中...我想这让我们回到了我说过的我会把它放在一边:

为什么要在这里设置一个您不打算处理的变量?如果您要在其他地方处理它,您可能也应该在那里使用它。包装记录器对象的代码应该处理它的所有功能,包括向支持日志记录的模型/业务对象公开单独的接口。

基本上,如果您将日志封装在另一个对象中,则不应该在该对象外部引用内部日志记录流对象。如果您没有在其他地方封装日志记录,那么这个类应该适当地处理它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4538696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档