mvvmcross で log4net を使用して MvxDebugTrace を置き換えたいのですが、コア ソース コードを変更したくありません。可能ですか?
質問する
340 次
1 に答える
3
Debugtrace は のセットアップ内で初期化されますInitializeDebugServices
。
現在、これは次の手順を使用して各プラットフォームに実装されています (例は Android のものです)。
- https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Platform/MvxAndroidSetup.cs#L65
- https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross/Platform/MvxSetup.cs#L55
このInitialiseDebugServices
メソッドは仮想としてマークされているため、各プラットフォーム内の独自の Setup.cs クラスでオーバーライドできます。
mvx から log4net へのブリッジを構築するには、この単純なIMvxTrace
インターフェースを実装する必要があります - https://github.com/slodge/MvvmCross/blob/v3/CrossCore/Cirrious.CrossCore/Platform/IMvxTrace.cs
これが完了すると...各プラットフォームでMySpecialTrace
which implementsを実装できるようIMvxTrace
になり、次を使用してセットアップで初期化できるはずです。
protected override void InitializeDebugServices()
{
Mvx.RegisterSingleton<IMvxTrace>(new MySpecialTrace());
MvxTrace.Initialize();
}
于 2013-05-03T06:24:30.033 に答える