2012-07-02 50 views
0

剛剛創建了一個具有某些方法的.dll文件。而且我有另一個項目,其中包含一個類庫和客戶端應用程序,它們相互參照並正常工作。爲什麼我無法在我的類庫中使用.dll中的對象?

問題是我引用了我剛剛在類庫中創建的.dll,但無法使用.dll中提供的方法。 (我可以在對象瀏覽器中看到它們,一切看起來都很好)。

就像當我嘗試:

Cache cache = new Cache("blabla"); 

我得到:

我made.Cache參考」是一個命名空間,但使用像一個 '類型'。

但是,當我在客戶端應用程序(這是一個控制檯應用程序)添加引用。然後我沒有問題,可以很容易地使用這些方法。爲什麼是在類庫中給我的問題?

任何建議

+1

發佈一些代碼,請 –

+1

可能是因爲您的命名空間也被稱爲'Cache',或者是因爲你缺少一個'using'聲明。使用更具體的標識符,例如'cache = new YourDllNameSpace.Cache()'來實例化它。 – CodeCaster

+0

你是否包含以'Cache'結尾的命名空間? – jrummell

回答

2

這是一個簡單的命名空間是在範圍和特徵相Cache中有一個命名衝突,可能在最後(如namespace MyCompany.MyNamespace.Cache { })。

您需要完全限定在線類型或解開的命名空間,並使用using聲明頂部:

MyNamespace.Cache cache = new MyNamespace.Cache(""); 

嘗試按照namespace naming guidelines避免出現這種情況:

待辦事項不要爲名稱空間和類使用相同的名稱。例如, 不提供Debug命名空間和Debug類。

2

將不會有任何理由,除非Cache被解釋爲類庫中的命名空間。無論實例化時,完全限定類:

var cache = new SomeNamespace.Cache(); 

或者使用的別名類:

using MyCache = SomeNamespace.Cache; 
... 
var cache = new MyCache(); 
0

嘗試完全限定的類型:MyDllAssembly.Cache cache = new MyDllAssembly.Cache();

相關問題