我是Xamarin的新手,正在使用VS 2017 Enterprise和最新的Xamarin更新。
我想添加一个API,以便Db可以与我的移动应用程序和MVC项目进行通信。
我创建了一个跨平台的空白.NET Standard项目。
我在解决方案中添加了一个新文件夹,并在该文件夹中添加了一个类来编写我的RestAPI代码。
在编写代码时,我使用了HttpClient,但它给我一个错误,询问我是否为
缺少程序集或参考。
如果我不能使用HttpClient,如何为REstApi编写代码?
或者有没有更好的方法允许我的Db与我的MVC项目和移动应用程序通信?
我将在Azure上发布我的MVC项目和移动应用程序。谢谢
答案 0 :(得分:0)
首先
对于出现的错误:missing an assembly or reference.
HttpClient位于“ System.Net.Http”命名空间中。
您需要添加:using System.Net.Http;
如here
第二次
是否有更好的方法允许您的Db与您的 MVC项目和移动应用通信?
是,发布MVC项目后,还有更好的方法
您可以使用 Azure Mobile Client 。
打开“ Package Manager控制台”并输入
安装软件包Microsoft.Azure.Mobile.Client-版本4.0.2
或者您可以从Azure Mobile Client SDK
获取最新版本该库提供了用于创建连接到Azure移动应用程序的Windows和Xamarin移动应用程序的功能
假设您有一个名为“用户”的类, 并且您想要读取,插入,更新和删除数据
看看下面的代码示例:
using Microsoft.WindowsAzure.MobileServices; using System.Collections.ObjectModel; using System.Threading.Tasks; public class User {/*....*/ } public class AzureServices { private static readonly string url = "http://xxxxx.azurewebsites.net"; /* * The Azure Mobile Client SDK provides the MobileServiceClient class, * which is used by a Xamarin.Forms application to access the Azure Mobile Apps instance */ public MobileServiceClient Client; public IMobileServiceTable<User> UserTable; public AzureServices() { /* * When the MobileServiceClient instance is created, * an application URL must be specified to identify the Azure Mobile Apps instance. */ Client = new MobileServiceClient(url); //calling the GetTable method on the MobileServiceClient instance, which returns a IMobileServiceTable<User> reference. UserTable = Client.GetTable<User>(); } // Querying Data public async Task<ObservableCollection<User>> GetAllUsers(bool sync = false) { var userList = await UserTable.ToEnumerableAsync(); return new ObservableCollection<User>(userList); } //Inserting Data public async Task AddUser(User item) { await UserTable.InsertAsync(item); } // Updating Data public async Task UpdateUser(User item) { await UserTable.UpdateAsync(item); } // Deleting Data public async Task DeleteUser(User item) { await UserTable.DeleteAsync(item); } }
有关更多信息,请访问Azure Mobile App