在dll中访问类?

时间:2012-08-14 16:52:51

标签: c#

从Windows窗体的Main类我试图在另一个库(dll)中创建一个类的对象。

但是我无法创建这个对象,因为当我输入该类的名称时,我没有得到Visual Studio的任何帮助。

我想我需要对库的引用,我试图右键单击库然后添加引用并选择我拥有Main类和Windows窗体的项目名称。

但它仍然无效!我做错了还是错过了什么?

2 个答案:

答案 0 :(得分:4)

  

但它仍然无效!我做错了还是我错过了什么?

确保已将定义此类的命名空间放入范围。例如:

namespace FooBar
{
    public class Foo  
    {

    }
}

然后在你的WinForms应用程序中添加对包含类的类库的引用后添加命名空间:

using FooBar;

现在您可以创建实例:

Foo foo = new Foo();

当然,要工作Foo必须声明为public。如果不是,那么当然你无法访问它。请记住,如果该类没有可见性修饰符:

namespace FooBar
{
    class Foo  
    {

    }
}

相当于:

namespace FooBar
{
    internal class Foo  
    {

    }
}

因此假设internal意味着您无法从其他程序集访问它。它必须是public

答案 1 :(得分:1)

access(dll),MSDN

中采取以下步骤library方法
  • 右键单击表单项目中的references文件夹,单击添加引用,选择dll的项目或文件夹。
  • 在您的类(Form)中包含dll的命名空间,假设您拥有命名空间yourcomapany.communication,然后使用using包含命名空间来访问其中的类。

    使用yourcomapany.communication;