Ich bin dabei, eine Bibliothek zu migrieren, die in C++ geschrieben ist und einen C# -Wrapper hat. Der C# Wrapper (LibWrapper
) hat eine Reihe von Klassen mit Namensräumen, wie:Klasse mit demselben Namen in zwei Assemblys (absichtlich)
namespace MyNamespace
class MyClass
class MyOtherClass
Meine neue Bibliothek, LibraryCS
enthält die gleichen Namensräume und Klassennamen als LibWrapper
(pro Benutzeranforderung), so habe ich auch:
Nachdem die Migration abgeschlossen ist, wird gerade ein Test erstellt, der die Ergebnisse der Verwendung beider Bibliotheken vergleicht, um die Migration zu validieren. Wenn ich jedoch versuche, auf MyNamespace.MyClass
zu verweisen, erhalte ich einen Compiler-Fehler (erwartet!), Der besagt, dass "MyNamespace.MyClass sowohl in LibWrapper als auch in LibraryCS definiert ist".
Gibt es einen Trick um dieses Problem, mit dem ich zwei Klassen mit exakt demselben Namen, aber aus verschiedenen Assemblys im selben Client-Code verwenden kann?
Oder gibt es eine andere Möglichkeit, dies zu testen?
Das Umbenennen des migrierten Namespace in etwas wie MyNamespace2
funktioniert natürlich, aber wir wurden gebeten, es nicht zu tun, um den Client-Code leichter zu migrieren.
Wäre es in Ordnung, einen Wrapper um eine der Klassen in einem anderen Namespace zu schreiben? – Goblin
Wenn ich beide im selben Testcode ausführen kann, kann es akzeptabel sein. Es wird ein Wrapper sein, der nur zu Testzwecken verwendet wird. – pgb