Ошибка компилятора CS0433

Обновлен: Ноябрь 2007

Сообщение об ошибке

Тип "TypeName1" существует как в "TypeName2", так и в "TypeName3"
The type TypeName1 exists in both TypeName2 and TypeName3

В приложении указаны две различные сборки, содержащие одинаковое пространство имен и тип, что приводит к неоднозначности.

Для устранения этой ошибки используйте псевдоним в параметре компилятора /reference (импорт метаданных) (параметры компилятора C#) или не указывайте одну из сборок.

Пример

В этом коде создается библиотека DLL с первой копией неоднозначного типа.

// CS0433_1.cs
// compile with: /target:library
namespace TypeBindConflicts 
{
   public class AggPubImpAggPubImp {}
}

В этом коде создается библиотека DLL со второй копией неоднозначного типа.

// CS0433_2.cs
// compile with: /target:library
namespace TypeBindConflicts 
{
   public class AggPubImpAggPubImp {}
}

В следующем примере возникает ошибка CS0433.

// 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
   }
}

В следующем примере показано использование псевдонима в параметре компилятора /reference для устранения ошибки CS0433.

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