1

我想在mvvmcross中使用log4net来代替MvxDebugTrace,但是我不想改变核心源代码,可以吗?

4

1 回答 1

3

Debugtrace 在 setup 中初始化InitializeDebugServices

目前,这是使用以下步骤在每个平台上实现的(示例来自 Android):

InitialiseDebugServices方法被标记为虚拟 - 因此您可以在每个平台内的您自己的 Setup.cs 类中覆盖它。

为了构建从 mvx 到 log4net 的桥梁,您需要实现这个简单的IMvxTrace接口 - https://github.com/slodge/MvvmCross/blob/v3/CrossCore/Cirrious.CrossCore/Platform/IMvxTrace.cs

完成此操作...在每个平台上,您应该能够实现MySpecialTracewhich implements IMvxTrace,然后您应该能够在 Setup 中使用以下命令对其进行初始化:

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