是否可以从vb.net dll中的dll导入c#类

本文关键字:dll 中的 导入 net vb 是否 | 更新日期: 2023-09-27 18:24:54

  • IDE:VS2010
  • Framework.net:4.0

我在Visual Studio 2010下创建了一个带有几个公共类的c#dll项目,我想在另一个dll项目中使用它的类,但它是用vb.net编写的。

在vb.net dll项目中,我引用了已构建的c#dll,但无法导入c#类。c#dll的命名空间甚至无法识别。

我必须做些什么才能看到我的c#类?如果可能的话。

我的c#dll(命名空间MyCSharpDll)的类示例:

namespace MyCSharpNamespace {
  public class MyCSharpClass {
    public void Test() {}
  }
}

我的vb.net dll文件中的示例:

Imports MyCSharpDll.MyCSharpNamespace

VS2010表示一个错误,表示MyCSharpDll未知或没有公共成员。

谢谢。

是否可以从vb.net dll中的dll导入c#类

我认为你应该重写你的导入

导入MyCSharpNamespace

没有"MyCSharpDll"部件

你问:"我在Visual Studio 2010下创建了一个带有几个公共类的c#dll项目,我想在另一个dll项目中使用它的类,但它是用vb.net编写的。"

是的,你可以做到。

只需添加到DLL引用中,就可以了!

假设有问题的dll是CLS兼容的,并且是根据相同的运行时版本编译的,那么您应该能够毫无问题地使用它。

如果其中一个(或两个)条件都不满足,您将无法使用导入的DLL。

确保Import指令使用程序集元数据中定义的名称空间-查看C#项目属性以查看默认名称空间是什么,这就是您需要导入的名称空间。

您需要添加对C#dll的引用。

http://msdn.microsoft.com/en-us/library/wkze6zky%28v=vs.80%29.aspx

现在,您可以从VB.NET:实例化一个C#类

Dim cClass = New MyCSharpNamespace.MyCSharpClass()