我在C#中有一个类来帮助我记录错误(ErrorClass)。

  • 该类有3个方法。将错误记录到:文件系统,Windows事件,
    电子邮件。
  • 3种方法中的2种需要诸如“发送电子邮件”或“目录路径”之类的设置。
  • 设置存储在注册表
  • 我使用依赖注入(inject)来实例化RegistryClass中的ErrorClass

  • 这就是我在注册表类中实例化ErrorHandle类的方式

    ErrorHandle _ErrorHandle =新的ErrorHandle();

    这是我如何在ErrorHandle类中实例化注册表类的方法

    RegistryTools _GetRegistry = new RegistryTools();

    我有一个可帮助我从注册表中检索值的类(RegistryClass)
  • 注册表类需要处理错误
  • 我使用依赖注入(inject)来实例化errorClass内的RegistryClass

  • 当我在两个类中都使用依赖项注入(inject)时,出现错误时会创建一个Endless LOOP。

    建议的处理这种情况的方式或最佳做法是:
  • 我应该访问ErrorClass内部的注册表吗?
  • 我不应该对RegistryClass进行错误处理吗?
  • 我应该为以下应用程序创建单独的ErroHandle过程吗?RegistryClass
  • 最佳答案

    不要重新发明这个轮子。有一个经过验证的.NET开源日志记录框架log4net。如果您需要将DI与其一起使用,可以执行too。 log4net使用XML文件进行配置,与处理注册表相比,该文件更易于访问,而且没有那么多麻烦。它还吞没了自己的错误,并使它们可以通过调试跟踪进行访问。

    关于c# - 如何避免无限循环,最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9560321/

    10-12 12:43