我正在尝试创建与EHAB一起使用的自定义异常处理程序。我所能找到的how-to是IExceptionHandler接口,它只需要HandleException方法。但是,显然还有其他要求,因为我得到了这个例外:
System.InvalidOperationException
{"The type 'Paychex.IP.Common.TempClassLibrary.TempExceptionHandler, TempClassLibrary,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' for custom exception handler
with name 'TempExceptionHandler' does not have the expected constructor
(C:\\Projects\\IP\\Common\\TempTestingConsole\\bin\\Debug\\TempTestingConsole.vshost.exe.Config
line 28)."}
如果有“预期的构造函数”,如何查找有关该内容的文档?我应该继承基类和IExceptionHandler接口吗? ('临时......'类只是我的沙箱,用于解决问题,不会是最后的类...)
更多信息:我的“沙盒”异常处理程序类如下:
[ConfigurationElementType(typeof(CustomHandlerData))]
public class TempExceptionHandler : IExceptionHandler
{
public Exception HandleException(Exception exception, Guid handlingInstanceId)
{
string oldMsg = exception.Message;
string newMsg = "Added by TempExceptionHandler: " + oldMsg;
ApplicationException newException = new ApplicationException(newMsg);
return newException;
}
}
我只想通过在EntLib配置实用程序中查看它来查看“[ConfigurationElementType(typeof(CustomHandlerData))]”属性的要求,当它打开一个对话框来选择自定义处理程序类时(在标题栏的标题栏中)对话框),但我不知道其他要求意味着什么。
答案 0 :(得分:1)
有关示例,请参阅Creating a Custom Provider。还有Enterprise Library 5.0 - Extensibility Labs遍历各种异常处理方案。
以上内容适用于Enterprise Library 5,但大部分细节仍适用于Enterprise Library 6.一个例外是GetRegistrations
覆盖将替换为BuildExceptionHandler
覆盖。
就NameValueCollection
构造函数而言,它与基本设计时集成一起使用。所有XML属性都作为名称值对传递给构造函数,类可以根据需要提取和使用这些值。
Enterprise Library 6现在拥有它自己的Hands-On Labs。