2013-02-08 43 views
0

我正在編寫一個應用程序框架,將被許多客戶端應用程序使用並用作構建它們的核心。該框架本身是一個MVC3(當前)應用程序,作爲Nuget包使用,並提供了鎖定佈局,UI模板以及IoC,部署包裝等統一方法。我們遇到的一個問題是目前摔角正在引入記錄方法進入和退出客戶端應用程序。這不是SO一門新學科 - 我看過一對夫婦和它打交道的職位:理想自動記錄方法進入和退出

,我想客戶端應用程序開發者不必考慮這種級別的日誌記錄,並讓框架在後臺處理它,而無需開發人員對其代碼進行任何更改。正如鏈接文章中提到的那樣,有一些類似PostSharp和其他AOP框架的東西,但它們仍然依賴於添加的屬性來啓用日誌記錄,這使得客戶端開發人員負責添加這些屬性。理想情況下,我希望框架代碼能夠管理所有這些,而無需客戶端開發人員執行任何操作。這感覺就像IoC框架應該提供的那種東西,但我還沒有找到任何符合法案的東西。我們目前使用NInject作爲框架IoC容器,但可能會改變,所以我沒有綁定到任何特定的容器。我也沒有綁定到特定的日誌框架。思考?

回答

1

Autofac有一個使用DynamicProxy實現方法攔截的擴展。您可以使用它來設置方法入口並退出應用程序中所有通過IoC容器解析的類(或根據您在應用程序框架中定義的約定)的日誌記錄。 http://code.google.com/p/autofac/wiki/DynamicProxy2