Je vais essayer d'expliquer le problème du mieux que je peux car c'est un peu étrange pour moi.Problème avec référence multiple à une bibliothèque de classes
J'ai une bibliothèque de classe C# qui définit un groupe de classes qui seront utilisées comme objets de transfert de données ou DTO.
Il existe une application Windows Forms qui fait référence à cette bibliothèque de classes DTO et également une référence à une autre bibliothèque de classes qui définit les présentateurs pour le modèle Model - View - Presenter.
Cette bibliothèque de classes de présentateur a une référence à une autre bibliothèque de classes qui contient des classes de proxy WCF.
La bibliothèque de classes proxys WCF a une référence à une autre bibliothèque de classes avec toutes les interfaces qui définissent les contrats pour les services WCF.
Enfin, cette bibliothèque avec les contrats WCF fait référence à la première bibliothèque de classes DTO puisqu'elle est reçue en tant que paramètre pour les méthodes.
Maintenant, après avoir expliqué cette infrastructure, le problème est que le projet de formulaire Windows ne compile l'erreur que je reçois est:
« Proheart.EmployeeView » ne met pas en oeuvre un membre d'interface « Proheart.IEmployeeView.JobDescriptions » . 'Proheart.EmployeeView.JobDescriptions' ne peut pas implémenter 'Proheart.IEmployeeView.JobDescriptions' car il ne possède pas le type de retour correspondant à 'System.Collections.Generic.List'.
Fondamentalement, le code ressemble à ceci:
//This interface is defined on the Presenters class library. public interface IEmployeeView { List<JobDescriptionDto> JobDescriptions { set; } } //This is the form in the Windows Forms project public partial class EmployeeView : Form, IEmployeeView { public List<JobDescriptionDto> JobDescriptions { set { ... do something } } }
S'il vous plaît, je besoin d'aide. Je sais que toutes les séparations de bibliothèques de classes peuvent sembler étranges mais c'est à cause de la stratégie de déploiement.
Merci. PS Je n'ai pas mentionné auparavant que la bibliothèque de classes Presenter ne possède PAS de référence à la DTO et que le proxy de services WCF ne l'est pas non plus. Il semble qu'il soit extrait de la bibliothèque de classes Service Interfaces car si je l'ajoute manuellement au Presenter, j'obtiens une erreur de référence circulaire.
Avez-vous compilé les assemblages tous en même temps, sont-ils dans la même solution? –
Oui, tous les assemblages sont dans la même solution. –