【问题标题】:Calling a web service in windows phone 7 in MVVM architecture在 MVVM 架构中调用 Windows Phone 7 中的 Web 服务
【发布时间】:2011-12-16 14:46:14
【问题描述】:

我正在 Windows Phone 7 中调用 Web 服务。

我添加了对 Web 服务(.asmx 服务)的服务引用,引用名称为 RS。 然后我调用如下服务:

Class AModel
{
     public void CreateT()
        {
           RS.RSSoapClient objRS = new RSRSSoapClient();
            objRS.Completed += new EventHandler<RS.CompletedEventArgs>(objRS_Completed);
            objRSAsync();
        }

    private void objRS_Completed(object sender, EventCompletedEventArgs e)
        {
             string str = e.Result;
             responseEventArgs = new ResponseEventArgs();
                responseEventArgs.response = e.Result;                
                System.Windows.Deployment.Current.Dispatcher.BeginInvoke(responseEventHandler, responseEventArgs);
        } 
}

Class BViewModel
{
       public void CreateT()
        {
            AModel objAModel = new AModel();
            objAModel.CreateT();
            objAModel .responseEventHandler += new ResponseEventHandler(objAModel_responseEventHandler);
        }

      private void objAModel_responseEventHandler(ResponseEventArgs e)
   {
     //doing some thing
    System.Windows.Deployment.Current.Dispatcher.BeginInvoke(responseEventHandler, responseEventArgs);
  }
}

这里我的主要问题是:这里我想使用 MVVM 架构,所以我在这里调用模型(类 AModel)层中的服务我调用一个事件来通知 ViewModel(BViewModel)并在 ViewModel 中调用相同的事件来通知视图(.xaml 页面)。由于这些事件,我的应用程序性能下降(绑定响应所需的时间很长)。因此,如果在实现 MVVM 架构时出现任何问题,请指导。

提前致谢。

【问题讨论】:

    标签: windows-phone-7 mvvm


    【解决方案1】:

    让您的 ViewModel 进行控制。将 Web 服务的调用放在服务对象 IMyService 中,并让它返回 Dto(s)。从 ViewModel 调用 myService.GetThings(); 然后处理所需的结果。如果您需要映射、显示或持久化它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      相关资源
      最近更新 更多