1 Pluspunkt 0 Minuspunkte

Wie kann ich eine .Net Bibliothek zur Laufzeit laden?

namespace MyLibrary
{
    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

bezieht sich auf eine Antwort auf: Eigene Bibliothek mit .Net erstellen
von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Mit Refection.

using System;
using System.Reflection;

class Program
{
    static void Main()
    {
        // Pfade zur DLL-Datei und zum Namespace der Klasse
        string assemblyPath = "Pfad\\zur\\MyLibrary.dll";
        string className = "MyLibrary.Calculator";

        // Assembly zur Laufzeit laden
        Assembly assembly = Assembly.LoadFrom(assemblyPath);

        // Typ der Klasse aus der Assembly abrufen
        Type calculatorType = assembly.GetType(className);

        if (calculatorType != null)
        {
            // Instanz der Klasse erstellen
            object calculatorInstance = Activator.CreateInstance(calculatorType);

            // Methode "Add" aufrufen
            MethodInfo addMethod = calculatorType.GetMethod("Add");
            int result = (int)addMethod.Invoke(calculatorInstance, new object[] { 3, 5 });

            Console.WriteLine("Ergebnis: " + result);
        }
        else
        {
            Console.WriteLine("Klasse nicht gefunden.");
        }
    }
}
von