什么是在Visual Studio 2017 Community Edition中用于Xamarin Forms PCL的Debug.WriteLine的替代方法?

7 浏览
0 Comments

什么是在Visual Studio 2017 Community Edition中用于Xamarin Forms PCL的Debug.WriteLine的替代方法?

似乎在Visual Studio 2017社区版中,Debug.WriteLine不起作用,如下链接所讨论的:Console.WriteLine在VS 2017中不输出到输出窗口

有人能否为Xamarin Forms PCL提供一个替代方法?

当我查看PCL中的Debug对象时,我只能看到WriteLine方法,所以我不知道如何连接到其他的监听器。

当我查看Xamarin文档中的System.Diagnostics命名空间时,列出了许多我在PCL中无法访问的方法和类。例如,'TraceListener'类缺失。这是正常行为吗?

0
0 Comments

问题的原因是在Xamarin Forms的PCL项目中,使用Visual Studio 2017 Community Edition时,无法使用System.Console.WriteLine()进行调试输出。这是因为PCL项目的工作方式与使用System.Console.WriteLine()不兼容。

解决方法是通过使用依赖服务(DependencyService)来访问原生代码。首先在PCL项目中创建一个接口IPlatformHelpers,其中包含一个WriteLine方法。然后在iOS和Android项目中创建一个实现了这个接口的类PlatformHelpers,并在其中实现WriteLine方法。最后,在PCL项目中通过DependencyService.Get()来获取PlatformHelpers的实例,并调用WriteLine方法来进行调试输出。

对于UWP项目,可以尝试使用Trace.WriteLine()进行调试输出。同时,确保UWP项目的项目属性中的Define DEBUG constant和Define TRACE constant选项都被勾选。如果使用Console.WriteLine或Trace.WriteLine没有编译错误,但没有输出结果,可以尝试使用Debug.WriteLine来进行调试输出。

这篇文章提供了一种解决Xamarin Forms PCL项目中无法使用System.Console.WriteLine()进行调试输出的方法,通过使用依赖服务来访问原生代码,并给出了在iOS、Android和UWP项目中实现该方法的示例代码。同时还提供了使用Trace.WriteLine()和Debug.WriteLine()进行调试输出的备选方案。

0