Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Тип "имя типа 1" существует одновременно в "имя типа 2" и "имя типа 3"
Две разных сборки, на которые ссылается ваше приложение, содержат одинаковые пространство имен и тип, в результате чего возникает неоднозначность.
Чтобы устранить эту ошибку, используйте функцию псевдонима параметра компилятора References или удалите ссылку на одну из этих сборок.
Эта ошибка также может возникать, если:
- Директива
@ Page
имеет атрибутCodeFile
вместо атрибутаCodeBehind
. - Код располагается в папке App_Code, хотя не должен.
Этот код создает библиотеку DLL с первой копией неоднозначного типа.
// CS0433_1.cs in CS0433_1.csproj
// or compile with: /target:library
namespace TypeBindConflicts
{
public class AggPubImpAggPubImp { }
}
Этот код создает библиотеку DLL со второй копией неоднозначного типа.
// CS0433_2.cs in CS0433_2.csproj
// or compile with: /target:library
namespace TypeBindConflicts
{
public class AggPubImpAggPubImp { }
}
Таким образом, при использовании этих двух библиотек (CS0433_1.dll
и CS0433_2.dll
) в проекте использование AggPubImpAddPubImp
типа будет неоднозначным и приведет к ошибке CS0433
компилятора.
<!-- CS0433_3.csproj -->
<ProjectReference Include="..\CS0433_1\CS0433_1.csproj" />
<ProjectReference Include="..\CS0433_2\CS0433_2.csproj" />
// CS0433_3.cs in CS0433_3.csproj
// or 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 для <Aliases>
<ProjectReference>
устранения этой ошибки CS0433.
<!-- CS0433_4.csproj -->
<ProjectReference Include="..\CS0433_1\CS0433_1.csproj">
<Aliases>CustomTypes</Aliases>
</ProjectReference>
<ProjectReference Include="..\CS0433_2\CS0433_2.csproj" />
// CS0433_4.cs in CS0433_4.csproj
// compile with: /reference:cs0433_1.dll /reference:CustomTypes=cs0433_2.dll
extern alias CustomTypes;
using TypeBindConflicts;
public class Test
{
public static void Main()
{
// AggPubImpAggPubImp taken from CS0433_1.dll
AggPubImpAggPubImp n6 = new AggPubImpAggPubImp();
// AggPubImpAggPubImp taken from CS0433_2.dll
CustomTypes.TypeBindConflicts.AggPubImpAggPubImp n7 =
new CustomTypes.TypeBindConflicts.AggPubImpAggPubImp();
}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: