Ho importato 2 DLL per la mia applicazione (terza parte) Ora entrambi hanno uno spazio dei nomi con lo stesso nome. Ad esempio A.B e in entrambi c'è di nuovo una classe con lo stesso nome. Ora voglio creare un'istanza di una di esse, ma poiché lo spazio dei nomi e della classe sono uguali, il compilatore diventa ambiguo. Come posso specificare la DLL strega usata nel luogo?classe ambigua con nomi namespace in 2 dll
risposta
Supponiamo di avere 2 gruppi (ClassLibrary1.dll
e ClassLibrary2.dll
) che entrambi definiscono la stessa classe nello stesso namespace:
namespace Foo
{
public class Bar
{
}
}
Ora nel progetto consumare è possibile definire un alias supplementare nei riferimenti del libreria di classi:
E ora si potrebbe fare le seguenti operazioni per aiutare il compilatore disambiguate:
extern alias lib1;
extern alias lib2;
class Program
{
static void Main()
{
var barFromLib1 = new lib1::Foo.Bar();
var barFromLib2 = new lib2::Foo.Bar();
}
}
Questo era simile a un problema che stavo avendo, ma nel mio caso, era il mio codice (una piccola classe di supporto) che avevo bisogno di usare in 2 diverse DLL che a loro volta venivano usate da un EXE. La soluzione di Darin ha funzionato alla grande! Grazie. –
Solo un po 'di miglioramento o informazioni avanzate: se si dispone di più utilizzi, l'alias "extern lib1;" - line deve essere il primo di questi utilizzi (ma anche MS VS lo informa).
la tua risposta non fornisce risposta alla domanda.si prega di leggere attentamente la domanda –
se sotto le risposte non funziona, allora sei fregato :) – swapneel
Fortunatamente uno di loro funziona :-) –