Wie kann ich eine DLL-Klasse zur Laufzeit laden?



  • Also noch mal meine Frage:
    Wie kann ich eine DLL-Klasse zur Laufzeit laden?

    Also das Programm "kennt" zur Entwicklungszeit nur das folgende Interface:

    public interface IMyInterface
    {
        int GetValue();
    }
    

    In der DLL steckt folgendes:

    public class MyClass : IMyInterface
    {
        public int GetValue()
        {
            return 10;
        }
    }
    

    Zur lauf Laufzeit erhÀlt das Programm ein Pfad der DLL, sowie den Namen der Klasse, die sich in der DLL befindet:

    public class MyUser
    {
        public IMyInterface GetInterface(string Path, string ClassName)
        {
            ...
        }
    }
    

    Ok und jetzt seid ihr dran! Wie kann ich meine Idee verwirklichen? 😕



  • In der MSDN ist schonmal das zu finden

    Das nÀchste ist die Klasse Assembly mit der man zur Laufzeit Resourcen in eine Anwendung laden kann.

    Deine Klasse[n] auch das Interface die Du laden möchtest musst Du schonmal in einem sepaeraten Projekt namens "Klassenbibliothek" unterbringen.
    Das .NET macht aus diesem "Klassenbiblithek"-Projekt eine konform DLL zur Verwendung in .NET-Applikationen. Dann hast Du eine Resource geschaffen die man statisch oder dynamisch in ein Projekt laden kann.

    Diese kannst Du dann z.B. ĂŒber "Verweis hinzufĂŒgen" im "Projekt Explorer"
    mit einem anderen C#-Projekt statisch verheiraten.

    Oder eben dynamisch ĂŒber Assembly-Objekt ins Programm laden.


Log in to reply