azure - 将 Azure 移动服务与 Xamarin Forms 结合使用的正确方法?

标签 azure xamarin xamarin.forms azure-mobile-services

通过 Xamarin Forms 应用使用 Azure 移动服务的最佳方式是什么?我正在使用 Azure 移动服务的托管后端版本。

这是迄今为止我的项目架构:

应用程序(可移植)

App.Droid

App.iOS

App.WinPhone

除此之外,我还在解决方案中添加了另外 2 个项目

应用程序服务

是 azure 移动服务,它不直接在上述任何项目中使用,而是通过表 Controller (Web API 内容)

应用程序共享(PCL)

这包含我的所有模型类和位于 azure API 之上的包装器。这个想法是使用这个 PCL 作为一个可重用的库,我将来可以在任何其他客户端上使用它。

所有与 azure 相关的位仅位于 app.Shared 和 native 项目中。

此设置适用于 Windows Phone 模拟器并在本地运行 Azure 服务。

但是,我无法使用 Android 设备或模拟器访问 Azure 服务(本地运行)。它总是立即返回“未经授权”错误。

我可以从 droid 模拟器中运行的浏览器应用程序访问本地运行的服务。我还可以从我的设备上运行的 Chrome 应用程序访问此服务。

你看到我这里有什么问题吗?

谢谢

最佳答案

我已经这样做了 - 基本上您需要在 Xamarin Forms PCL 中编写通用访问代码,但在实际平台项目中实例化并注册 Azure 客户端。使用完整的依赖项注入(inject)框架(例如 Autofac)比仅使用 Xamarin 服务定位器要容易得多。

大部分逻辑都位于 PCL 的类中。它应该接受 MobileServiceSyncClient 的依赖项(抱歉,如果该名称已关闭,不是我的代码),这是您将调用 GetTable、Update 等的实际客户端。

然后,您在 iOS 或 Android 项目中构建一些内容 - MobileSyncStore(它依赖于 SQLite)以及客户端(无法在 PCL 中初始化)。将其提供给您的逻辑类,然后注册该逻辑类(在我的代码中,这是 AzureStorageService,实现 IMobileServiceClient)。现在,任何需要与服务器通信的类都只需获得对 IMobileServiceClient 的依赖,就可以开始了。

关于azure - 将 Azure 移动服务与 Xamarin Forms 结合使用的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33607574/

相关文章:

c# - Xamarin.Forms(可为空)DatePicker : Workaround for missing OK and cancel events

c# - Xamarin Forms 的本地通知?

c# - 在我的 Azure 示例解决方案 AspProviders 中,项目 StorageClient 不可用

c# - 如何使用 SQL Server 创建自定义 ASP.NET 身份提供程序?

xamarin - Xamarin Forms 中不同类型的导航

listview - 如何更改 Xamarin 中的章节标题字体样式?

azure - 是否有解决方案来设置动态 Windows 虚拟桌面主机池负载平衡方法?

azure - BrowserStack 和 Azure 集成和运行测试

c# - 运算符 '!=' 不能应用于类型 'Task' 和 'int' 的操作数

android - 导入 Xamarin keystore - System.AggregateException