Sono in procinto di migrare una libreria che è scritta in C++ e ha un wrapper C#. Il C# involucro (LibWrapper
) ha una serie di classi con spazi dei nomi, come:Classe con lo stesso nome in due assembly (intenzionalmente)
namespace MyNamespace
class MyClass
class MyOtherClass
mia nuova libreria, LibraryCS
contiene gli stessi spazi dei nomi e nomi di classe come LibWrapper
(requisito per utente), quindi ho anche:
namespace MyNamespace
class MyClass
class MyOtherClass
Ora che la migrazione è terminata, sono in procinto di creare un test che confronta i risultati dell'utilizzo di entrambe le librerie per convalidare la migrazione. Tuttavia, quando provo a fare riferimento a MyNamespace.MyClass
, ricevo un errore del compilatore (prevedibilmente!) Che dice "MyNamespace.MyClass è definito sia in LibWrapper che in LibraryCS".
C'è qualche trucco intorno a questo problema, che mi consentirà di utilizzare due classi con lo stesso nome ma provenienti da diversi assembly nello stesso codice client?
In alternativa, c'è un altro modo per testare questo?
Rinominare lo spazio dei nomi migrato in qualcosa come MyNamespace2
funzionerà ovviamente, ma ci è stato chiesto di non farlo, al fine di mantenere più facile la migrazione del codice client.
Va bene scrivere un wrapper attorno a una delle classi esistenti in un altro spazio dei nomi? – Goblin
Se sono in grado di eseguire entrambi nello stesso codice di test, potrebbe essere accettabile. Sarà un wrapper utilizzato solo a scopo di test. – pgb