gpt4 book ai didi

android - Xamarin 共享项目与可移植类库

转载 作者:IT老高 更新时间:2023-10-28 22:03:13 24 4
gpt4 key购买 nike

我正在尝试找出哪种方式更适合我们的项目。

Xamarin 的 PCL 库或共享项目。

Xamarin documentation link here它说经验法则是当我们不共享库时选择共享项目。可以使用 #if 编写共享项目,以确保它适用于多个平台 - 这也会导致重构 #ifs not active 时出现一些问题。

但我有一种直觉,将这段代码放到共享类中是不对的。如果要用于 Windows、Android 和 IOS 移动平台的代码使用共享项目而不是 PCL - 这意味着我们在共享项目中使用#ifs,而不是在特定平台项目中编写特定于平台的代码。

这是试图通过#ifs 支持非PCL 项目,并使共享代码更复杂且更难维护。这不应该是 Xamarin 为改进 .NET PCL 代码库而要做的工作吗?

这也意味着我们将特定于平台的功能放在共享项目中,而不是特定于平台的项目中 - 即从平台项目本身隐藏特定平台的复杂性 - 这在架构方面感觉不对。

我是对的(在这种情况下,我与 Xamarin 文档冲突)还是我遗漏了什么?

最佳答案

两者都有自己的位置。例如,您可以将接口(interface)放入 PCL 中,然后在共享代码中实现它,前提是该实现具有相当数量的共享代码。

我也不喜欢编译器标志,我更喜欢使用部分类。通过这种方式,您可以避免大多数甚至全部编译器标志。 Class1.cs 将进入共享项目,其余的将进入他们的平台特定项目。

Class1.cs
Class1.ios.cs
Class1.android.cs
Class1.wp8.cs

关于android - Xamarin 共享项目与可移植类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990307/

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