這是非常不好的做法,有2個不同的組件在同一個命名空間中定義的同一類的幫助。你已經找到了原因。這就是說,有一種機制可以消除稱爲外部別名的引用。
假設您有一個控制檯應用程序,它引用了包含相同類Foo.SomeClass
(ClassLibrary1
和ClassLibrary2
)的兩個程序集。在您要使用的類項目中,選擇裝配基準,並在屬性窗口中定義的別名(除了默認global
別名):
執行相同的第二組件參考並使用不同的別名。
現在可以使用在順序提供給基準組件的別名來指定指的是哪一類:
extern alias assembly1;
extern alias assembly2;
using FirstClass = assembly1::Foo.SomeClass;
using SecondClass = assembly2::Foo.SomeClass;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var c1 = new FirstClass();
var c2 = new SecondClass();
}
}
}
[解決不明確的引用]的可能的複製(HTTP://計算器的.com /問題/ 14141043 /解決-AN-曖昧參考) –