Art*_*ter 7 mono xamarin.ios xamarin.android mvvmcross xamarin
我正在使用MvvmCross.在库中,我看到了Mvx.Trace方法的用法,但没有输出到控制台/输出窗口.如何使用它?
ps我已经设置了编译器常量Trace = true
谢谢.
Stu*_*art 21
MvvmCross DebugTrace全部通过单例实现路由 IMvxTrace
每个平台提供不同的实现:
Debug跟踪(因为Trace它本身并非在所有Windows平台上都可用)DebugAndroid和Android 的双重日志logDebugiOS和iOS 的双重日志Console这在早期版本的MvvmCross中运行良好,特别是在人们直接链接到MvvmCross源代码的情况下,因此可以直接绑定到调试或释放MvvmCross二进制文件.
但是......因为人们现在越来越多地使用Nuget发布的二进制文件 - 其中Debug当然是编译出来的,那么这通常会让人们问"如何使用它?"
最简单的方法是覆盖Setup类中IMvxTrace的初始化.
这很容易做到 - 例如:
protected override IMvxTrace CreateDebugTrace() { return new MyDebugTrace(); }
Run Code Online (Sandbox Code Playgroud)
在哪里MyDebugTrace是这样的:
public class MyDebugTrace : IMvxTrace
{
public void Trace(MvxTraceLevel level, string tag, Func<string> message)
{
Debug.WriteLine(tag + ":" + level + ":" + message());
}
public void Trace(MvxTraceLevel level, string tag, string message)
{
Debug.WriteLine(tag + ":" + level + ":" + message);
}
public void Trace(MvxTraceLevel level, string tag, string message, params object[] args)
{
try
{
Debug.WriteLine(string.Format(tag + ":" + level + ":" + message, args));
}
catch (FormatException)
{
Trace(MvxTraceLevel.Error, tag, "Exception during trace of {0} {1} {2}", level, message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想包含不同的调试/发布实现; 如果你想在运行时打开/关闭它; 如果你想过滤MvxTraceLevel或tag; 或者如果你想使用某些第三方日志引擎,那么在每个平台上使用简单的C#也应该很容易.
| 归档时间: |
|
| 查看次数: |
6709 次 |
| 最近记录: |