EntLib 6 - 创建完整设计集成的异常处理程序

时间:2014-04-23 08:24:37

标签: c# enterprise-library design-time

我正在尝试为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 ,它就像魅力一样。

1 个答案:

答案 0 :(得分:0)

据我所知,属性名称区分大小写。可能在XML配置中出错了。顺便提一下,这是一个非常好的教程:Creating a Custom Provider