gpt4 book ai didi

mono - MvvmCross Mvx.Trace 用法

转载 作者:行者123 更新时间:2023-12-04 09:11:05 25 4
gpt4 key购买 nike

我正在使用 MvvmCross。
在库中,我看到了 Mvx.Trace 方法的用法,但没有输出到控制台/输出窗口。
如何使用它?

p.s.我已经设置了编译器常量 Trace = true

谢谢。

最佳答案

MvvmCross DebugTrace 全部通过IMvxTrace 的单例实现路由。

每个平台都提供了不同的实现:

  • Windows 平台使用 Debug跟踪(因为 Trace 本身并非在所有 Windows 平台上都可用)
  • Android 使用 Debug 的双日志和安卓 log
  • iOS 使用 Debug 的双重日志和 iOS Console

  • 这在 MvvmCross 的早期版本中运行良好,尤其是人们直接链接到 MvvmCross 源代码,因此可以直接绑定(bind)到调试或发布 MvvmCross 二进制文件。

    但是...因为人们现在越来越多地使用 Nuget 的发行版二进制文件 - 其中 Debug当然是编译出来的,那么这经常会让人问“怎么用?”

    最简单的方法是在您的 Setup 中覆盖 IMvxTrace 的初始化。类(class)。

    这很容易做到 - 例如:
       protected override IMvxTrace CreateDebugTrace() { return new MyDebugTrace(); }

    在哪里 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);
    }
    }
    }

    如果您想包含不同的调试/发布实现;如果您想在运行时打开/关闭它;如果您想过滤 MvxTraceLeveltag ;或者如果您想使用一些第三方日志引擎,那么在每个平台上使用简单的 C# 也应该很容易做到这一点。

    关于mono - MvvmCross Mvx.Trace 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17233922/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com