c# - 使用 PCL 的跨平台项目中平台特定功能的项目架构

标签 c# xamarin mvvmcross portable-class-library

我目前正在使用 Xamarin 和出色的 MvvmCross 平台开发跨平台应用程序。我想知道如何设计我的解决方案(项目架构)以使其包含特定于平台的功能(PCL 中的接口(interface)等)。

比如我要实现读取一个文件,应该在PCL中创建什么样的接口(interface)?我还应该遵循哪些其他良好做法?还有其他方法吗?

谢谢

最佳答案

一般的方法是在 PCL 中定义您的接口(interface),它可以在不同的平台上使用,然后具有实现这些接口(interface)的特定于平台的库。

然后,在每个平台的不同应用程序中,您可以将这些接口(interface)连接到正确的实现。然后,您可以在代码中的任何位置依赖 PCL 中定义的接口(interface)。在运行时,将传递正确的平台特定实现。

我写了两篇关于此的博文,它们很有用(它们是关于在 Win8 和 WinPhone 之间共享,但适用相同的概念):

http://www.kenneth-truyers.net/2013/02/24/patterns-for-sharing-code-in-windows-phone-and-windows-8-applications/

http://www.kenneth-truyers.net/2013/03/27/portable-class-libraries-or-source-code-sharing/

关于c# - 使用 PCL 的跨平台项目中平台特定功能的项目架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406874/

相关文章:

c# - 自定义授权中的 MVC 4.0 FormsAuthentication 和 AuthorizeAttribute

ios - Xamarin 表单检查 iOS 上的 wifi 连接

android - 在 MvvmCross 中以编程方式创建和绑定(bind) Android Spinner

c# - 如何为 MvvmCross 测试设置属性注入(inject)?

mvvmcross - 如何使用 MvvMCross 在运行时检测平台?

C# 和 F# lambda 表达式代码生成

c# - 如何测试我的ConfigureHowToFindSaga 是否在NServiceBus 中工作?

c# - HttpClient 似乎忽略了 Timeout 属性

image - 在按钮中居中图标和文本 Xamarin XAML

c# - 遍历模型属性并在代码文件中获取值