如何从dll导入一个类?

时间:2011-04-19 08:26:46

标签: c# dll dllimport

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   .......

我该怎么做?

3 个答案:

答案 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。