3

このコードはすべて、クライアント コンシューマー アプリケーションで使用するための独自のライブラリです。ここにあるドキュメントとまったく同じインストーラーを使用しています。また、使用することを除いて、hereとほぼ同じブートストラップもあります。_bootStrapContainer = new WindsorContainer().Install(FromAssembly.Named("MyAssembly"));

Castle.Core.Logging.ILoggerインストーラーが以下のクラスに挿入すると思っていましたが、次のようMyLoggerに解決しない限り、常に null ロガーを取得します。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;
       }
    } 
}
4

2 に答える 2

2

Windsor が Logger プロパティを解決できるようにするには、Windsor ログ機能を登録する必要があります。

xmlコードを使用してロギング機能をセットアップする例を次に示します。

基本的には、次のように要約されます。

container.AddFacility<LoggingFacility>(f => f.UseLog4Net());
于 2012-11-08T04:28:58.147 に答える
0

すでに値があるため、機能しない可能性があります。フィールドを初期化せずに再試行し、それをプロパティの取得に移動します

于 2012-11-09T07:50:13.557 に答える