Compilerfehler CS0433
Aktualisiert: November 2007
Fehlermeldung
Der Typ "Typname1" ist sowohl in "Typname2" als auch in "Typname3" vorhanden.
The type TypeName1 exists in both TypeName2 and TypeName3
Zwei Assemblys, auf die in der Anwendung verwiesen wird, enthalten den gleichen Namespace und den gleichen Typ, was zu Mehrdeutigkeit führt.
Verwenden Sie zum Lösen dieses Problems das Aliasfeature der /reference (Metadaten importieren) (C#-Compileroptionen)-Compileroption, oder verweisen Sie auf keine der Assemblys.
Beispiel
Durch diesen Code wird die DLL mit der ersten Kopie des mehrdeutigen Typs erstellt.
// CS0433_1.cs
// compile with: /target:library
namespace TypeBindConflicts
{
public class AggPubImpAggPubImp {}
}
Durch diesen Code wird die DLL mit der zweiten Kopie des mehrdeutigen Typs erstellt.
// CS0433_2.cs
// compile with: /target:library
namespace TypeBindConflicts
{
public class AggPubImpAggPubImp {}
}
Im folgenden Beispiel wird CS0433 generiert:
// CS0433_3.cs
// compile with: /reference:cs0433_1.dll /reference:cs0433_2.dll
using TypeBindConflicts;
public class Test
{
public static void Main()
{
AggPubImpAggPubImp n6 = new AggPubImpAggPubImp(); // CS0433
}
}
Im folgenden Beispiel wird die Verwendung des Aliasfeatures der /reference-Compileroption zum Beheben des Fehlers CS0433 veranschaulicht.
// CS0433_4.cs
// compile with: /reference:cs0433_1.dll /reference:TypeBindConflicts=cs0433_2.dll
using TypeBindConflicts;
public class Test
{
public static void Main()
{
AggPubImpAggPubImp n6 = new AggPubImpAggPubImp();
}
}