如何将UWP项目代码复用至Xamarin Forms项目以避免代码重复?
跨UWP与Xamarin Forms通用代码复用方案
- 封装.NET Standard类库
将两个项目共用的Models、Helpers、Services层纯逻辑代码全部迁移到独立的*.NET Standard 2.0/2.1类库项目*中,UWP(最低版本要求16299及以上)和Xamarin Forms全平台均原生支持.NET Standard,类库无需绑定任何UI框架,两个项目分别添加对该类库的项目引用,即可直接调用所有公共代码,是迁移成本最低、通用性最强的方案。 - 共享项目(Shared Project)复用
如果通用代码中存在少量需要区分平台的逻辑,可以选择将通用代码放到独立共享项目中,两个主项目分别引用该共享项目。需要区分平台的逻辑通过编译指令实现分支,例如用#if WINDOWS_UWP编写UWP专属逻辑,#if __ANDROID__ || __IOS__编写Xamarin端专属逻辑,适合存在少量平台差异的代码复用场景。 - 平台差异适配方案
如果原有UWP的Services层用到了UWP专属系统API,可将这部分逻辑抽为接口定义保留在通用类库/共享项目中,分别在UWP项目和Xamarin Forms项目中做平台特定实现,通过依赖注入(DI)的方式在各自的ViewModel层注入对应实现,无需修改上层通用调用逻辑。
内容的提问来源于stack exchange,提问作者juuugh
相关产品推荐
相关产品推荐

