我正在尝试为EntLib 6创建一个完全集成的异常处理程序。
这是我的处理程序骨架:
[ConfigurationElementType(typeof(LogHandlerData))]
public class LogHandler : IExceptionHandler
{
public LogHandler(String message) { }
public Exception HandleException(Exception exception, Guid handlingInstanceId)
{
return exception;
}
}
配置我创建了一个DataHandler类:
public class LogHandlerData : ExceptionHandlerData
{
private const String MESSAGE = "Message";
public LogHandlerData() : base(typeof(LogHandler)) { }
public LogHandlerData(string name, string message)
: base(name, typeof(LogHandler))
{
Message = message;
}
[ConfigurationProperty(MESSAGE, IsRequired = false)]
[Editor(CommonDesignTime.EditorTypes.MultilineText, CommonDesignTime.EditorTypes.FrameworkElement)]
public String Message
{
get { return (String)this[MESSAGE]; }
set { this[MESSAGE] = value; }
}
public override IExceptionHandler BuildExceptionHandler()
{
return new LogHandler(Message);
}
}
似乎有些不对劲。当我使用EntLib-config-util选择assemlby时,不会出现可用的处理程序。如果我将 ConfigurationElementType 更改为 CustomHandlerData ,它就像魅力一样。