2012-08-14 56 views
0

從Windows窗體的主類我試圖在另一個庫(dll)內創建一個類的對象。在dll中訪問類?

但是我不能創建這個對象,因爲當我輸入該類的名稱時,我沒有得到Visual Studio的幫助。

我想我需要一個對庫的引用,我試圖右鍵單擊該庫,然後添加引用,並選擇項目的名稱,我有我的主類和Windows窗體。

但它仍然不工作!我做錯了,還是錯過了一些東西?

+0

您是否使用過['using'](http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx)? – ken2k 2012-08-14 16:54:08

回答

1

採取以下步驟來accesslibrary(DLL)的方法,MSDN

  • 右鍵單擊窗體項目references添加文件夾上單擊添加引用選擇項目或DLL文件夾中。
  • 在你的類中包含dll的命名空間(Form)假設你有命名空間yourcomapany.communication,然後使用using來包含命名空間來訪問它的類。

    using yourcomapany.communication;

+0

然後彈出一個消息框,說我不能添加它,它會導致循環依賴! – 2012-08-14 17:00:55

+0

您是否將項目的參考添加到自身?在你想使用它的項目中添加庫的引用 – Adil 2012-08-14 17:02:57

+0

當我按照你的步驟,我得到這個消息!? – 2012-08-14 17:11:11

4

但它仍然不工作!我做錯了,還是我錯過了什麼?

確保您已將該類定義到的名稱空間帶入作用域。因此,例如:

using FooBar; 

現在你可以創建實例:

Foo foo = new Foo(); 

namespace FooBar 
{ 
    public class Foo 
    { 

    } 
} 

,然後在你的WinForms將參照類庫包含類添加命名空間後申請

當然,要運行Foo必須聲明爲public。如果不是,那麼你當然不能訪問它。請記住,如果沒有可見性修飾符的類:

namespace FooBar 
{ 
    class Foo 
    { 

    } 
} 

等同於:

namespace FooBar 
{ 
    internal class Foo 
    { 

    } 
} 

所以internal假設,這意味着你不能從其他組件訪問。它必須是public

+0

當我嘗試寫入命名空間時,我沒有得到任何幫助。我認爲它沒有「連接」! – 2012-08-14 17:02:03

+0

您是否將包含此名稱空間的程序集引用到項目中?如果它是同一解決方案的一部分,則可以直接添加項目引用。 – 2012-08-14 17:02:33

+0

是的,它是同一個解決方案的一部分 – 2012-08-14 17:03:53