我有一个PCL,它通过dll本身包含 System.Data.Linq (。映射)。这适用于iOS,Windows和MacOS,但不适用于Android。
我知道PCL内部不支持这个命名空间,但奇怪的是,除了Xamarin:Android之外,它在每个项目类型中都可以工作(是的,我用这个做了多个项目)。
我是否可以尝试自己实现代码,将程序集嵌入本机代码或其他内容?
感谢您的帮助
答案 0 :(得分:0)
我是否可以尝试自己实现代码,将程序集嵌入本机代码或其他内容?
我认为不是。如您所知,System.Data.Linq
在PCL中不可用,并且Android(或Java)中没有lambda表达式。我们还需要尊重PCL的设计,它用于编写和构建可在多个.NET Framework平台上运行的托管程序集。因此,如果在使用此PCL的项目中不支持方法/ dll或其他内容,则此方法/ dll不应放在PCL中。
此外,Xamarin.Forms被设计为跨平台UI工具包,允许开发人员轻松创建可在Android,iOS和Windows Phone之间共享的本机用户界面布局。它主要是目标共享UI。当然,您也可以在其PCL中调用method / dll时指定平台,例如:
#if __MOBILE__
// Xamarin iOS or Android-specific code
#endif
有关指定平台的详细信息,请参阅Dealing with Multiple Platforms。