2017-06-23 1 views
0

Lassen Sie uns sagen, dass ich ein Projekt A haben, die gemeinsame Klassen enthält, die zwischen Projekt B und Projekt C.Teilen gemeinsam C# Klasse-2-Projekte zwischen, sondern ermöglichen es einem Projekt Änderungen daran vornehmen

Ist es möglich, gemeinsam genutzt werden werden Damit Project C seine eigene Version einer Klasse aus Projekt A implementiert, werden andere Klassen in Projekt A die Version von Project C verwenden, wenn dies das Buildziel ist, oder die Version von Project B (freigegebene Version) verwenden, wenn dies das Ziel ist .

Mit 2 separaten Klassen wäre eine Lösung, die ich denke, aber das wird ein Schmerz in den Arsch, um sicherzustellen, dass ich beide Versionen zu aktualisieren. Eine andere Lösung, die ich mir vorstellen kann, wären virtuelle Methoden, aber ich habe keine Ahnung, ob die Klassenabhängigkeit die überschriebene oder die ursprüngliche Methode verwendet.

+0

Sie können eine Verknüpfungsdatei von einer Baugruppe in einer anderen verwenden. Kombiniert mit Build-Konfigurationen sollte tun, was Sie wollen – Novaterata

+0

Ich empfehle das jedoch nicht. Habe einfach eine gemeinsame Bibliothek und nutze die Abhängigkeitsinjektion. – Novaterata

+0

Haben Sie über Vererbung nachgedacht? Sie könnten eine Klasse in pA (Projekt A) erstellen und sie in pB und pC verwenden. Es ist unüblich, eine Klasse zu erstellen, die von einem anderen Projekt geändert wird, um in pC in pA verwendet zu werden. Sie könnten 'pA.MyClass' und' pC.MyClass: pA.MyClass' und für die anderen Klassen die gleiche 'pA.otherClass; Leere xyz (pA.MyClass myClass); pC.otherClass: pa.otherClass; override void xyz (pC.MyClass myClass): base ... ' – DomeTune

Antwort

1

Schreiben Sie keine Klasse. Schreiben Sie eine Schnittstelle. Dann kann eine Klasse, die von der Schnittstelle abhängt, jede Implementierung der Schnittstelle verwenden.

Verwandte Themen