4

我正在将解决方案迁移到 MVVMCross,但 ServiceStack 客户端库很难使用。

如何将 ServiceStack 客户端 DLL 构建到 PCL 库中以在 Xamarin Studio 中使用,使其成为多平台?

除非我错过了,否则这里没有什么值得注意的: https ://github.com/ServiceStack

4

2 回答 2

3

您可以克隆 ServiceStack 项目、创建 PCL 项目、链接文件、构建并查看缺少的内容。我敢肯定没有 PCL 是有原因的,但如果你碰巧得到它,请提出拉取请求。

由于您使用的是 MvvmCross,另一个选择是为您的 API 制作一个插件,然后在平台特定项目中引用 ServiceStack 库。

您还可以使用 MvvmCross RestClient 并进行与 ServiceStack 客户端相同的调用。

编辑:第四种选择是使用新的 HttpClient 的。一个来自 Xamarin,另一个来自 MS(如果您的目标是 Win)。添加PortableRest,您就可以将大部分代码保存在可移植文件中。我说的最多是因为您可能必须抽象出 HttpClient。我已经使用过这种方法几次并且效果很好。PortableRest有一个分支,它添加了文件上传。

于 2013-11-04T01:40:12.470 回答
1

我遇到了一些与.net 相关的问题(例如,.net 4.5 中缺少 Timer 类)。所以我只是创建了一个不同的库,然后为计时器类创建了一个包装器。这是一种方法。将您的 http 代码放在单独的库中将使项目更易于维护。

进一步的一步是使用 mvvmcross 依赖注入来实例化您在另一个库中创建的类。这样,即使您正在实例化非 PCL 代码也没关系,事情就可以正常工作。不过,您必须在单独的 PCL 库中声明所有接口。

于 2013-12-30T18:25:58.407 回答