所有這些代碼都是我自己的庫,供我的客戶端應用程序使用 我的安裝程序與文檔here中的安裝程序完全相同。我也有一個引導程序幾乎一樣發現here,除了我用:_bootStrapContainer = new WindsorContainer().Install(FromAssembly.Named("MyAssembly"));
我需要與Castle Windsor解決ILogger嗎?
我想安裝將注入Castle.Core.Logging.ILogger
到MyLogger
級以下,但我總是得到空記錄,除非我解決MyLogger.Logger
這樣的:
MyLogger lgr = new MyLogger();
lgr.Logger = container.Resolve<ILogger>();
所以我的問題是我總是必須解決還是我在 註冊期間沒有做正確的事情?
using Castle.Core.Logging;
public class MyLogger
{
private ILogger _logger = NullLogger.Instance;
public ILogger Logger
{
get
{
return _logger;
}
set
{
_logger = value;
}
}
}
感謝您的答覆,我認爲AddFacility只是另一種註冊方式,除非我錯了,我也認爲windsor會自動解決我的ILogger屬性到Core ILogger接口。 – OutOFTouch
考慮到Windsor的文檔說明了這一點,我只是認爲我已經做出了決心,但我發現我仍然需要解決:「這是如何使用的?」,你可能會問?你所要做的就是向Castle.Core.Logging命名空間中的Castle.Core程序集請求一個對ILogger接口的引用(通常的做法是使用settable屬性而不是構造函數),而你一切都準備好了。該容器將爲您提供一個已配置且可以隨時使用的ILogger實例。 – OutOFTouch
我對設施的理解是設施擴展了容器的現有功能(http://docs.castleproject.org/Windsor.Facilities.ashx)。通過閱讀更多關於日誌記錄工具(http://docs.castleproject.org/Windsor.Logging-Facility.ashx),該工具允許您的課程解析ILogger接口的實現。容器不會自動注入記錄器實例,因爲涉及解析屬性和注入記錄器。它不是注入記錄器的容器的核心功能,因此是設施。 –