Is it possible to import c# classes from dll in a

2019-05-06 04:25发布

问题:

  • IDE: VS2010
  • Framework.net: 4.0

I created a c# dll project under Visual Studio 2010, with several public classes, and I would like to use its classes inside another dll project, but written in vb.net.

In the vb.net dll project, I referenced the built c# dll, but impossible to import the c# classes. The namespace of the c# dll is even not recognized.

What must I do to see my c# classes? If this is possible.

Example of class of my c# dll (namespace MyCSharpDll):

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

Example in a file of my vb.net dll:

Imports MyCSharpDll.MyCSharpNamespace

VS2010 indicates an error saying that MyCSharpDll is unknown or no public member.

Thank you.

回答1:

I think you should rewrite your imports

Imports MyCSharpNamespace

without 'MyCSharpDll' part



回答2:

You asked: "I created a c# dll project under Visual Studio 2010, with several public classes, and I would like to use its classes inside another dll project, but written in vb.net."

YES you can do it.

Just add to that DLL reference and that's it!



回答3:

Assuming the dll in question is CLS compliant and compiled against the same runtime version, you should be able to use it without a problem.

If either (or both) of these conditions are not met, you will not be able to use the imported DLL.

Make sure the Import directive uses the namespace as defined in the assembly metadata - look at your C# project properties to see what the default namespace is, that's what you need to import.



回答4:

You need to add a reference to your C# dll.

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

Now you can instantiate a C# class from VB.NET:

Dim cClass = New MyCSharpNamespace.MyCSharpClass()