使用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/