我在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未知或没有公共成员。
谢谢。
答案 0 :(得分:4)
你问:“我在Visual Studio 2010下创建了一个c#dll项目,有几个公共类,我想在另一个dll项目中使用它的类,但是用vb.net编写。”
是的,你可以做到。
只需添加到该DLL引用就可以了!
答案 1 :(得分:4)
假设有问题的dll是CLS compliant并且针对相同的运行时版本进行编译,那么您应该可以毫无问题地使用它。
如果不满足这些条件中的任何一个(或两个),您将无法使用导入的DLL。
确保Import
指令使用程序集元数据中定义的命名空间 - 查看C#项目属性以查看默认命名空间是什么,这就是您需要导入的内容。
答案 2 :(得分:4)
我认为你应该重写你的导入
导入MyCSharpNamespace
没有'MyCSharpDll'部分
答案 3 :(得分:1)
您需要添加对C#dll的引用。
http://msdn.microsoft.com/en-us/library/wkze6zky%28v=vs.80%29.aspx
现在您可以从VB.NET实例化一个C#类:
Dim cClass = New MyCSharpNamespace.MyCSharpClass()