0

似乎 Debug.WriteLine 在 Visual Studio 2017 社区版中不起作用,如以下链接中所述:Console.WriteLine does not output to Output Window in VS 2017

谁能建议 Xamarin Forms PCL 的替代方案?当我从 PCL 查看 Debug 对象时,我只看到 WriteLine 的方法,所以我很难了解如何附加到不同的 Listener。

当我查看 System.Diagnostics 命名空间的 Xamarin 文档时,它列出了许多我似乎无法从我的 PCL 中访问的方法和类。例如,缺少“TraceListener”类。这是正确的行为吗?

4

1 回答 1

1

System.Diagnostic.Debug.WriteLine()在使用 Visual Studio 2017 的 PCL 项目、.NET Standard 项目和 Xamarin.Android/Xamarin.iOS 项目中对我来说效果很好。

你自己试过吗?

System.Console.WriteLine()但是在 PCL 项目中不起作用,尽管这与您使用的 IDE 无关,并且与PCL 项目的工作方式有关,但在 Xamarin.Android/Xamarin.iOS 项目中确实有效。如果您想System.Console.WriteLine()在 PCL 项目中使用,您可以通过各种方法利用本机代码。其中之一是DependencyService.Get<>().

创建以下类:

个人电脑:

public interface IPlatformHelpers {
    void WriteLine(string text);
}

iOS 和安卓:

[assembly: Dependency(typeof(PlatformHelpers))]

namespace App.<iOS | Android> {

    public class PlatformHelpers : IPlatformHelpers {

        public void WriteLine(string text) {
            System.Console.WriteLine(text);
        }
    }
}

现在在您的 PCL 中,您可以执行以下操作:

IPlatformHelpers helper = DependencyService.Get<IPlatformHelpers>();

helper.WriteLine("Angry BLAH!");

有趣的是,它似乎System.Console.WriteLine()可以在 .NET Standard 项目中使用(至少对于 .NET Standard 1.3+),尽管我自己还没有真正尝试过。

于 2017-05-27T17:20:47.900 回答