2013-08-30 121 views
0

我正在嘗試創建與EHAB一起使用的自定義異常處理程序。我所能找到的只是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

在這裏發現我的問題的至少部分答案:[鏈接](http://infiniteimprobability.blogspot.com/2007/05/implementing-iexceptionhandler.html)只需添加一個空的構造函數到我的類與正確的參數:'public TempExceptionHandler(NameValueCollection attributes){}'追趕異常。要愛的徹底的文件... ;-) –

+0

...現在找出構造函數應該做的那個收集參數... –

回答

1

Creating a Custom Provider爲例。還有一個Enterprise Library 5.0 - Extensibility Labs,它演示了各種異常處理場景。

以上是企業庫5的詳細信息,但大多數細節仍適用於企業庫6.一個例外是覆蓋將替換爲覆蓋BuildExceptionHandler

根據NameValueCollection構造函數,與基本設計時間集成一起使用。所有XML屬性都以名稱值對的形式傳遞給構造函數,並且類可以根據需要提取和使用這些值。

Enterprise Library 6現在擁有它自己的Hands-On Labs

+0

謝謝你的信息! –