Xamarin 不同平台代码分离的三种方法

我们在使用Xamarin跨平台解决方案的过程中,其中超过80%的业务代码是可以共写在Shared Project中以供Android、IOS、UWP等平台共用。但由于各平台的一些API调用的方式不同,因此,需要将这些不同的业务代码区分开来写,那具体有哪些方法可以实现代码分离呢?Xamarin官网给出以下几种方法:

方法一:Conditional Compilation   -- 选择性编译,用#if #elif 等在Shared Project将不同平台的代码分开

if  __IOS__
    ........//这的代码只在IOS下编译 
#endif               if  __ANDROID__
    ........//这的代码只在Android下编译 
#endif                

方法二:Class Mirroring,简单来说,就是在Shared Project 中定义接口(并非真正的Interface),然后在IOS和Droid的Projects中实现

如在Shared Project中定义如下代码

void Main(){
   Alert.Show()
 }

在IOS 项目中实现如下

internal class Alert()
{
   public void Show()
  {
     ................//你自己的代码
   }
}

在Android 项目中实现如下

 internal class Alert()
{
   public void Show()
  {
     ................//你自己的代码
   }
 }

方法三:Partial Class And Method   --通过部分类来实现

Shared Project中:

partial class HelloWorld()
{
    .............//共享的代码
}

IOS Project中:

partial class HelloWorld()
{
    .............//IOS项目中的实现代码
}

posted on 2016-06-12 16:02  巴拉森  阅读(689)  评论(0编辑  收藏  举报

导航