Вызов веб-службы в Windows Phone 7 в архитектуре MVVM - PullRequest
1 голос
/ 16 декабря 2011

Я звоню в веб-службу в Windows Phone 7.

Я добавил ссылку на службу в веб-службу (.asmx Service) с именем Refrence 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 для уведомления View (страница .xaml).Из-за этих событий производительность моего приложения снижается (время, затрачиваемое на привязку ответа, очень велико).Поэтому, пожалуйста, помогите, если что-то не так в реализации архитектуры MVVM.

Заранее спасибо.

1 Ответ

2 голосов
/ 16 декабря 2011

Пусть ваш ViewModel контролирует.Поместите вызов веб-службы в объект службы IMyService и сделайте так, чтобы он возвращал Dto (s).Из ViewModel вызовите myService.GetThings();, затем сделайте с результатами то, что требуется.Если вам нужно отобразить, отобразить или сохранить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...