1

mvvmcross で log4net を使用して MvxDebugTrace を置き換えたいのですが、コア ソース コードを変更したくありません。可能ですか?

4

1 に答える 1

3

Debugtrace は のセットアップ内で初期化されますInitializeDebugServices

現在、これは次の手順を使用して各プラットフォームに実装されています (例は Android のものです)。

このInitialiseDebugServicesメソッドは仮想としてマークされているため、各プラットフォーム内の独自の Setup.cs クラスでオーバーライドできます。

mvx から log4net へのブリッジを構築するには、この単純なIMvxTraceインターフェースを実装する必要があります - https://github.com/slodge/MvvmCross/blob/v3/CrossCore/Cirrious.CrossCore/Platform/IMvxTrace.cs

これが完了すると...各プラットフォームでMySpecialTracewhich implementsを実装できるようIMvxTraceになり、次を使用してセットアップで初期化できるはずです。

    protected override void InitializeDebugServices()
    {
         Mvx.RegisterSingleton<IMvxTrace>(new MySpecialTrace());
         MvxTrace.Initialize();
    }
于 2013-05-03T06:24:30.033 に答える