ich arbeite gerade an einem Programm, das mehrere .dll's als Referenz verwendet. Es hat alles gut geklappt, aber gestern habe ich einen neuen Verweis hinzugefügt, und ich habe einen Fehler in einem Objekt, das ich von einer anderen Referenz verwendet, und es sagte, dass dieses Objekt in beiden DLL-Dateien definiert ist. Ich habe versucht, die andere Referenz zu entfernen, aber ich brauche, was in dieser Referenz ist, so muss ich irgendwie umgehen. Ich suchte online, aber ich fand keine gute Lösung, da es scheint, dass nicht viele dieses Problem haben! Aus diesem Grund wird die Hilfe eines erfahrenen Programmierers mehr denn je benötigt, aber ich schätze natürlich jede Hilfe :)2 Referenzen haben die gleichen Objekte/Namespaces definiert
Antwort
Es ist sehr schlecht, dieselbe Klasse in zwei verschiedenen Assemblies im selben Namensraum zu definieren. Sie haben bereits herausgefunden warum. Davon abgesehen gibt es einen Mechanismus, der es ermöglicht, die als externe Aliase bezeichneten Referenzen zu disambiguieren.
Nehmen wir an, dass Sie eine Konsole-Anwendung haben, die zwei Baugruppen verweist, die die gleiche Klasse Foo.SomeClass
(ClassLibrary1
und ClassLibrary2
) enthalten. In dem Projekt, in dem Sie die Klasse verwenden möchten, wählen Sie die Montagereferenz und im Eigenschaftenfenster einen Alias (zusätzlich zu den Standard global
Alias) definieren:
das gleiche für die zweite Baugruppe Referenz Sie und verwende einen anderen Aliasnamen.
Jetzt können Sie die Montage Aliase verwenden, die Sie auf den Referenz vorgesehen, um die, die Klasse angeben, Sie beziehen sich auf:
extern alias assembly1;
extern alias assembly2;
using FirstClass = assembly1::Foo.SomeClass;
using SecondClass = assembly2::Foo.SomeClass;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var c1 = new FirstClass();
var c2 = new SecondClass();
}
}
}
- 1. Warum haben die Bibliotheken glibc und pthread die gleichen APIs definiert?
- 2. Wie haben Sie 2 Domains auf der gleichen Website?
- 3. Wie haben Sie 2 verschiedene Karten auf der gleichen Seite
- 4. Wie haben Sie 2 Sammlungen des gleichen Typs in JPA?
- 5. Blätter, die fast den gleichen Namen haben
- 6. Java - Objekt-Pool mit gleichen Referenzen
- 7. gleichen Code haben unterschiedliche Ergebnisse
- 8. Zählen Sie Zeilen, die die gleichen Beziehungen haben
- 9. C++: Warum können wir keine Referenzen auf Referenzen oder ein Array von Referenzen haben?
- 10. ASP.NET 2 Projekte teilen die gleichen Dateien
- 11. Force dropdown, um nicht die gleichen Werte zu haben
- 12. How 2 C Libs zu verwenden, die die gleichen Funktionsnamen
- 13. Wie zwei Hashes fusionieren, die gleichen Schlüssel in Ruby haben
- 14. ServiceStack OrmLite mehrere Referenzen des gleichen Typs laden
- 15. Mysql Anzahl der Zeilen, die den gleichen Wert haben
- 16. Wie 2 Spalten in 2 Tabellen aktualisieren, die Fremdschlüssel haben
- 17. Warum haben verschiedene Methoden des gleichen Objekts die gleiche 'ID'?
- 18. UI-Router: Routen, die die gleichen URLs aber unterschiedliche Zustände haben
- 19. F # Assembly-Referenzen, die Build-Probleme verursachen?
- 20. Merge 2 Array gleichen Schlüssel
- 21. Wie zwei separate Referenzen des gleichen Modells mit Sequelize ORM?
- 22. Winkel 2 Variable nicht definiert
- 23. Ist * p ++ + = 2 gut definiert?
- 24. Wählen Sie in 2 Tabellen, die den gleichen Feldnamen enthalten?
- 25. Warum ist: fs.start_link/2 nicht definiert?
- 26. Warum müssen coq gegenseitig induktive Typen die gleichen Parameter haben?
- 27. OTP/XOR Cracking zwei Chiffriertexte, die den gleichen Schlüssel haben
- 28. Excel: Zeilen zusammenfassen, wenn zwei Spalten die gleichen Zeichenfolgenwerte haben
- 29. Positionierungselement im Winkelmesser, wenn zwei Elemente die gleichen Attribute haben
- 30. Verknüpfen mit externen Schriftarten, die den gleichen Namen haben?
Mögliche Duplikat [eine mehrdeutige Referenz auflösen] (http: // Stackoverflow .com/questions/14141043/resolving-an-ambiguous-reference) –