似乎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'班级不见了。这是正确的行为吗?
答案 0 :(得分:1)
System.Diagnostic.Debug.WriteLine()
适用于PCL项目,.NET标准项目和使用Visual Studio 2017的Xamarin.Android/Xamarin.iOS项目。
你自己试过吗?
然而, System.Console.WriteLine()
在PCL项目中不起作用,尽管这与您正在使用的IDE无关,而且与how PCL projects work有关,但在Xamarin.Android/中有效。 Xamarin.iOS项目。如果您想在PCL项目中使用System.Console.WriteLine()
,可以通过各种方法使用本机代码。其中一个是DependencyService.Get<>()
。
创建以下类:
PCL:
public interface IPlatformHelpers {
void WriteLine(string text);
}
iOS&amp;机器人:
[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标准项目中可用(至少对于.NET标准1.3+),尽管我自己还没有尝试过。