2016-07-24 64 views
0

我在那一刻,它使用多個.dll文件的參考工作的程序。這一切都工作得很好,但昨天我添加了一個新的參考,我在我是從另一個參考使用對象得到一個錯誤,它說這個對象是在這兩個.dll文件definded。我試圖刪除其他參考,但我需要什麼是在該參考,所以我必須解決它以某種方式。我在網上搜索,但我沒有找到一個好的解決方案,因爲它似乎沒有很多有這個問題!因爲有經驗的程序員的幫助,需要比以往更多,但我欣賞每一件當然:)2引用定義了相同的對象/名稱空間

+2

[解決不明確的引用]的可能的複製(HTTP://計算器的.com /問題/ 14141043 /解決-AN-曖昧參考) –

回答

1

這是非常不好的做法,有2個不同的組件在同一個命名空間中定義的同一類的幫助。你已經找到了原因。這就是說,有一種機制可以消除稱爲外部別名的引用。

假設您有一個控制檯應用程序,它引用了包含相同類Foo.SomeClassClassLibrary1ClassLibrary2)的兩個程序集。在您要使用的類項目中,選擇裝配基準,並在屬性窗口中定義的別名(除了默認global別名):

enter image description here

執行相同的第二組件參考並使用不同的別名。

現在可以使用在順序提供給基準組件的別名來指定指的是哪一類:

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(); 
     } 
    } 
} 
相關問題