2017-10-03 4 views
0

Mon architecture de projet est comme suit pour Droid,Xamarin référence managment

Couche d'accès aux données -> Projet PCL -> Projet Droid.

Maintenant, si je veux accéder directement à n'importe quelle méthode pour la couche d'accès aux données dans le projet Droid, j'ai besoin d'ajouter une référence pour la couche d'accès aux données à Droid Project.

Y a-t-il un moyen d'accéder à la méthode pour DAL à Droid sans l'ajouter comme fichier de référence?

Répondre

0

Je pense que votre meilleur pari serait d'apporter une couche de service qui vit dans votre PCL

  • DataAccess
    • SomeRepository: ISomeRepository
  • PCL
    • ISomeRepository
    • ISomeService
    • SOMESERVICE: ISomeService
  • Droid
    • cteur (ISomeService SOMESERVICE)

Votre couche de service doit être capable de gérer plusieurs référentiels, si nécessaire, et vous avez l'avantage supplémentaire d'avoir un service qui parle à votre DAL et un autre service qui parle à votre API, tous deux utilisant la même interface.

// DAL 
public class SomeRepository : ISomeRepository 
{ 
    public void DoSomething(){ 
     // do something 
    } 
} 
// PCL 
public interface ISomeRepository 
{ 
    void DoSomething(); 
} 

public interface ISomeService 
{ 
    void DoThings(); 
} 

public class SomeService : ISomeService 
{ 
    private ISomeRepository _someRepository; 
    SomeService(ISomeRepository someRepository) 
    { 
     _someRepository = someRepository; 
    } 

    public void DoThings() 
    { 
     // do things via DAL 
    } 
} 

public class SomeProxyService : ISomeService 
{ 
    private HttpClient _httpClient; 
    SomeProxyService(HttpClient httpClient) 
    { 
     _httpClient = httpClient; 
    } 

    public void DoThings() 
    { 
     // do things via HTTP 
    } 
}