MVVMCROSS 在 ViewModel 外部使用 MvxLog
MVVMCROSS Use MvxLog outside ViewModel
在 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());
}
}
如何在 "View" 和 "Model" 级别使用 IMvxLog?
谢谢!
只需解析与 IoCProvider 的接口:
对于 Mvx >= 6.2
var logProvider = Mvx.IoCProvider.Resolve<IMvxLogProvider>();
对于 Mvx < 6.2
var logProvider = Mvx.Resolve<IMvxLogProvider>();
然后你就做
var log = logProvider.GetLogFor<MyObject>();
高
在 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());
}
}
如何在 "View" 和 "Model" 级别使用 IMvxLog?
谢谢!
只需解析与 IoCProvider 的接口:
对于 Mvx >= 6.2
var logProvider = Mvx.IoCProvider.Resolve<IMvxLogProvider>();
对于 Mvx < 6.2
var logProvider = Mvx.Resolve<IMvxLogProvider>();
然后你就做
var log = logProvider.GetLogFor<MyObject>();
高