【问题标题】:MVVMCROSS Use MvxLog outside ViewModelMVVMCROSS 在 ViewModel 外使用 MvxLog
【发布时间】:2018-11-16 16:32:49
【问题描述】:

直到 MvvmCross V5 为了从 View、ViewModel、Model 中记录一些东西,我一直使用以下行:

Mvx.Trace($"lorem ");

现在我想将我的项目迁移到 MVVMCross 6,我发现这种方法已被弃用。现在需要 IMvxLog。

https://www.mvvmcross.com/documentation/fundamentals/logging 上,我只发现了一个与 ViewModel 级别的日志相关的示例。

public class MyViewModel : MvxViewModel
{
    private readonly IMvxLog _log;
    public MyViewModel(IMvxLogProvider logProvider)
    {
        _log = logProvider.GetLogFor<MyViewModel>();
    }

    private void SomeMethod()
    {
        _log.ErrorException("Some message", new Exception());
    }
}

如何在“视图”和“模型”级别使用 IMvxLog?

谢谢!

【问题讨论】:

    标签: xamarin logging mvvmcross multiplatform


    【解决方案1】:

    只需使用 IoCProvider 解析 de 接口:

    对于 Mvx >= 6.2

    var logProvider = Mvx.IoCProvider.Resolve&lt;IMvxLogProvider&gt;();

    对于 Mvx

    var logProvider = Mvx.Resolve&lt;IMvxLogProvider&gt;();

    然后你就这样做

    var log = logProvider.GetLogFor&lt;MyObject&gt;();

    【讨论】:

    • 非常感谢,这正是我需要知道的!
    猜你喜欢
    • 1970-01-01
    • 2016-08-23
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    相关资源
    最近更新 更多