Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MonoTouch/MonoDroid服务层不兼容?_Android_Ios_Xamarin.ios_Xamarin.android_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,Android,Ios,Xamarin.ios,Xamarin.android,servicestack" /> servicestack,Android,Ios,Xamarin.ios,Xamarin.android,servicestack" />

Android MonoTouch/MonoDroid服务层不兼容?

Android MonoTouch/MonoDroid服务层不兼容?,android,ios,xamarin.ios,xamarin.android,servicestack,Android,Ios,Xamarin.ios,Xamarin.android,servicestack,我们已经开始构建跨平台的Android/iOS应用程序,以前只在MonoTouch中构建。我们正在评估MonoDroid 我们的应用程序需要使用JSON,我们希望使用ServiceStack。Xamarin有一个ServiceStack分支,我们正在使用- 我们希望有一个共同的项目负责获取和发布JSON。Xamarin的ServiceStack为Android和iOS提供了不同的DLL。我们如何拥有一个单一项目,并使用ServiceStack获取JSON 我们还可以使用其他选项以统一的方式获取J

我们已经开始构建跨平台的Android/iOS应用程序,以前只在MonoTouch中构建。我们正在评估
MonoDroid

我们的应用程序需要使用
JSON
,我们希望使用
ServiceStack
。Xamarin有一个ServiceStack分支,我们正在使用-

我们希望有一个共同的项目负责获取和发布JSON。Xamarin的ServiceStack为Android和iOS提供了不同的DLL。我们如何拥有一个
单一项目
,并使用ServiceStack获取JSON


我们还可以使用其他选项以统一的方式获取JSON?

总的来说,为MonoTouch编译的托管*.dll不依赖于MonoTouch的特定类型,它们与Mono for Android项目兼容

ServiceStack就是一个很好的例子。我个人曾在Xamarin移动框架产品的多个项目中使用过它


一般来说,我倾向于使用带有异步方法的分部类封装对web服务的所有调用,如
FooProjectRestClient
。然后,如果需要进行任何类型的分割,则可以使用#if defs在共享类中进行分割。

Android特定库之所以有MonoTouchMono,通常是因为可用的(更小、类似Silverlight的)配置文件(例如,需要删除依赖于新FX4.0功能的内容)。它们通常是使用定义的
SILVERLIGHT
(或
MONOTOUCH
MONODROID
)重新编译的相同代码

MonoTouch仅用于特定库的原因通常是因为其环境(iOS设备)不允许JIT。因此没有代码生成(例如,
System.Reflection.Emit
)或动态(向下)加载代码…但通常可以提供(性能较差)解决方法或跳过一些功能,并为MonoTouch保留一个特殊版本的库

现在回到拥有一个单一的共享程序集/项目。特殊的MonoTouch程序集(通常与定义的
MonoTouch重新编译的代码相同)仍然是一个有效的.NET程序集,通常可以在Android、Mono或.NET的Mono中使用(
MonoTouch
).这肯定不是最好的,但你可以试试

另一种方法是在多个解决方案(如MonoTouchApp、M4AndroidApp)中使用相同的项目(如MyLib),并使用特殊配置(就像有一个iPhone | Debug one)来设置不同的定义(如iPhone | | | | | | | | | | | | | | | | | | | |(例如,如果相同功能的实现方式不同)

我会先尝试后面的方法(配置),然后共享MonoTouch特殊程序集,最后(如果它真的不起作用)寻找其他替代方法