c# - 如何使用 Exception Manager Enterprise Library 6.0

标签 c# exception-handling enterprise-library

使用Enterprise Library 6.0时,出现以下代码错误:

bool rethrow = ExceptionPolicy.HandleException(ex, "ReplacePolicy1")

“必须使用 SetExceptionManager 方法在 ExceptionPolicy 类中设置一个 ExceptionManager。”

在 Enterprise Library 5.0 中,这段代码有效:

public static bool HandleException(Exception exception, string PolicyName)
{
    ExceptionManager exManager = EnterpriseLibraryContainer.Current.GetInstance<ExceptionManager>();
    ExceptionPolicy.SetExceptionManager(exManager);
    bool rethrow = ExceptionPolicy.HandleException(ex, "ReplacePolicy1");
    return reThrow;
}

但在 Enterprise Library 6.0 中找不到 EnterpriseLibraryContainer 类。 我想要获取 ExceptionManager 的实例。 我该如何解决这个问题?

最佳答案

Enterprise LibraryContainer 已在 Enterprise Library 6 的发布中被删除。在 Enterprise Library 6 中有一种引导应用程序 block 的新方法。如果您想获得 ExceptionManager 的实例,您可以使用工厂:

IConfigurationSource config = ConfigurationSourceFactory.Create();
ExceptionPolicyFactory factory = new ExceptionPolicyFactory(config);

ExceptionManager exManager = factory.CreateManager();

要将 block 配置为使用静态外观,您可以使用 SetExceptionManager 方法并从上面提供 ExceptionManager:

ExceptionPolicy.SetExceptionManager(factory.CreateManager());

这只需要在应用程序启动时完成一次。

关于c# - 如何使用 Exception Manager Enterprise Library 6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17131190/

相关文章:

c# - 样式自定义用户控件禁用状态

c# - 在 .NET 3.5 中有效的语句抛出 "error CS0117: ' System.Linq.Dynamic.DynamicExpression' does not contain a definition for 'ParseLamba' "in 4.5

r - R中包含空文件的错误/异常处理

enterprise-library - 是否有可以从 Azure 表存储读取日志消息的日志查看器应用程序?

c# - 等待/异步 Microsoft 实践企业库数据

c# - 根据枚举值获取枚举名称

c# - 如何在 C# 中使用 Selenium 验证是否显示了警报消息?

javascript - 使用 promises 时如何在 Javascript 中出现异常后重试?

wcf - 如何将WCF异常传达给WebClient

.net - 格式化日志记录应用程序 block 的 SystemDiagnosticsTraceListenerData 监听器的日志记录