添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

类型 TypeName1 同时存在于 TypeName2 和 TypeName3 中

在应用程序中引用的两个不同程序集包含相同的命名空间和类型,这会造成多义性。

若要修复此错误,请使用 ( References ) 编译器选项的别名功能,或者不引用其中任何一个程序集。

以下情况下也可能发生此错误:

  • @ Page 指令应该是 CodeBehind 属性时,它具有 CodeFile 属性。
  • 代码置于 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.dllCS0433_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 编译器选项的别名功能或 <ProjectReference> 中的 <Aliases> 功能解决此 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();