如何使用Xamarin.Forms实现MVVM设计模式PCL& Web API服务

时间:2017-08-10 08:15:52

标签: mongodb web-services mvvm xamarin.forms

我正在开发一个Xamarin应用程序。

我的解决方案架构:

enter image description here

说明:

  1. MongoService - 这是用于与MongoDB(我的数据库)交谈的Web API服务。

  2. OpTeamizerApp - 这是Xamarin.Forms PCL(共享项目)。

  3. OpTeamizerApp.Android - Android的默认项目。

  4. OpTeamizerApp.IOS - IOS的​​默认项目。

  5. 我使用MVVM设计模式和OpTeamizerApp(PCL项目)包含Views,View模型。

    现在,我想创建模型(例如Mobile等)。

    所以,我的问题: 这个模型需要在哪里?

    我认为模型需要使用Views,View模型(在OpTeamizerApp - PCL项目中)。

    如果我是对的,我有一个问题: MongoService项目不了解模型(移动等) - 那么Web服务如何在数据库中添加/删除/更新移动设备?

    一点代码:

    MongoService项目 - > MongoService.asmx:

        [WebMethod]
        [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
        public string InsertMobile()
        {
            MobileService mobServ = new MobileService();
            Mobile mob = new Mobile();
            mob.MobileID = 123456;
            mob.Name = "Samsung";
            mobServ .Create(mob);
    
            return new JavaScriptSerializer().Serialize(mob);
        }
    

    OpTeamizerApp项目:

        public async Task<string> GetMobileAsync()
        {
    
            var client = new System.Net.Http.HttpClient();
            client.DefaultRequestHeaders.Add("Accept", "application/json");
            var address = $"http://URL/MongoService/MongoService.asmx/InsertMobile"; //?format=application/json";
    
            var response = await client.GetAsync(address);
    
            var mobileJson = response.Content.ReadAsStringAsync().Result;
    
            var MobileObj = JsonConvert.DeserializeObject<Mobile>(mobileJson);
    
            return MobileObj;
    
        }
    

    感谢您的关注!

    更新: 我可以使用我的模型创建.NET Framework类库,并参考我的Xamarin PCL&amp; MongoService到这个类库。但是我无法从我的Xamarin PCL项目中添加对这个类库的引用

0 个答案:

没有答案