cómo importar una clase de dll?

mydll.dll

namespace mydll
{
    public class MyClass {
        public static int Add(int x, int y)
        {
            return x +y;
        }
    }
}

En otro proyecto ¿cómo puedo importar Miclase, o simplemente Añadir a la función?

Quiero agregar con DllImport,

[DllImport(«mydll.dll», » CharSet =
Conjunto de caracteres.Auto) ] public static extern
…….

¿cómo puedo hacer eso?

  • Estás usando C# en ambos lados de la aplicación (definición de la clase y de consumidores de clase)? Si, puede ser una forma mejor
InformationsquelleAutor ocanal | 2011-04-19

3 Kommentare

  1. 3

    Puede utilizar la Reflexión para cargar el ensamblado en tiempo de ejecución.

    Aquí un fragmento de código que se puede utilizar :

    Assembly myAssembly ;
    myAssembly = Assembly.LoadFile("myDll.dll");
    
    object o;
    Type myType =  myAssembly.GetType("<assembly>.<class>");
    o = Activator.CreateInstance(myType);

    Aquí usted puede encontrar un buen tutorial.

  2. 6

    DllImport se utiliza para llamar a código no administrado. El MyClass clase que han demostrado es el código administrado y con el fin de llamar en otra asamblea que simplemente agregar la referencia a la asamblea que la contiene y se invoca el método. Por ejemplo:

    using System;
    using mydll;
    
    class Program
    {
        static void Main()
        {
            int result = MyClass.Add(1, 3);
            Console.WriteLine(result);
        }
    }
    • No quiero añadir dll mientras el programa se ejecuta, no con la opción agregar referencia, así que ¿cómo puedo crear una dll no administrada?
    • usted podría cargar un ensamblado en tiempo de ejecución mediante la Reflexión y el Asamblea.LoadFrom método. Una vez que el ensamblado se carga podría lista de todos los tipos en el interior y la invocación de métodos en ellos.
  3. 0

    Si ambas partes .NET, usted todavía necesita un poco de interfaz común (o dinámica). Si usted tiene que, en su lugar, puede utilizar la Reflexión o la ComponentModel.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea