MYDLL.DLL
namespace mydll
{
public class MyClass {
public static int Add(int x, int y)
{
return x +y;
}
}
}
在另一个项目中,如何导入MyClass或只添加功能?
我想添加 DllImport ,
[DllImport(“mydll.dll”,CharSet = CharSet.Auto)] public static extern .......
我该怎么做?
答案 0 :(得分:6)
DllImport
用于调用非托管代码。您显示的MyClass
类是托管代码,为了在另一个程序集中调用它,您只需add reference to the assembly包含它并调用该方法。例如:
using System;
using mydll;
class Program
{
static void Main()
{
int result = MyClass.Add(1, 3);
Console.WriteLine(result);
}
}
答案 1 :(得分:3)
您可以使用Reflection在运行时加载程序集。
您可以使用以下代码:
Assembly myAssembly ;
myAssembly = Assembly.LoadFile("myDll.dll");
object o;
Type myType = myAssembly.GetType("<assembly>.<class>");
o = Activator.CreateInstance(myType);
Here你可以找到一个很好的教程。
答案 2 :(得分:0)
如果双方都是.NET,您仍然需要一些通用接口(或使用动态)。如果你有这个,你可以使用Reflection或ComponentModel。