2017-05-14 1 views
-3
  • J'ai défini un service RestService.cs et d'essayer d'appeler le service du modèle de vue FirstViewModel.cs
  • Comment y parvenir en utilisant IntIRestService.cs

RestService.csComment appeler un service dans le modèle de vue à travers l'interface

namespace SqliteDemo.core.Services 
{ 
    public class RestService : IntIRestService 
    { 
     public async Task<List<People>> GetSalesPeopleAsync() 
     { 
      try 
      { 
       //Declare a Http client 
       var client = new HttpClient(); 
       //Add a Base URl 
       client.BaseAddress = new Uri(Constants.MUrl); 
       //Add the response type 
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
       //Add the API 
       var response = await client.GetAsync("iCodersLab/Custom-ListView-Using-Volley/master/richman.json"); 

       var content = await response.Content.ReadAsStringAsync(); 
       //return content; 
      } 
      catch (Exception ex) 
      { 
       var t = ex.Message; 
      } 

      return null; 
     } 
    } 
} 

FirstViewModel.cs

namespace SqliteDemo.core.ViewModels 
{ 
    public class FirstViewModel 
     : MvxViewModel 
    { 
     public event EventHandler mNetworkClick; 

     public ICommand networkTask 
     { 
      get; 
      set; 
     } 


     public FirstViewModel() 
     { 
      networkTask = new MvxCommand<string>(param => 
      { 
       //Calling Service here 
      }); 
     } 

    } 
} 

IntIRestService.cs

namespace SqliteDemo.core.Services.ServiceInterfeces 
{ 
    public interface IntIRestService 
    { 
     Task<List<People>> GetSalesPeopleAsync(); 
    } 
} 

Répondre

0

IntIrestService est l'interface, vous ne pouvez pas instancier l'interface.
Vous devez instancier la classe concrète qui implémente l'interface.

IntIrestService intIrestService = new RestService(); 
+0

Merci, 'intIrestService.GetSalesPeopleAsync();' je peux utiliser pour appeler le service, Comment obtenir le contrôle au modèle de vue une fois la tâche async est terminée (dans Android, nous utilisons les auditeurs, comment faire la même chose ici) – Devrath