2012-06-26 12 views
16

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

+1

se sotto le risposte non funziona, allora sei fregato :) – swapneel

+0

Fortunatamente uno di loro funziona :-) –

risposta

30

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:

enter image description here

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(); 
    } 
} 
+0

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. –

-1

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).

+0

la tua risposta non fornisce risposta alla domanda.si prega di leggere attentamente la domanda –

Problemi correlati