1- Nein Sie können nichts zu einer referenzierten DLL hinzufügen.
2- Ja, Sie müssen die Quelle für diese DLL aktualisieren und eine neue Kopie erstellen. Wenn die dll
eine class library
in der gleichen Lösung ist, müssen Sie nur die Methode/Schnittstelle und Rebuild
hinzufügen.
Erweiterungsmethoden:
Sie können jederzeit eine Extension Method zu einer Klasse hinzufügen, die Sie keine Kontrolle haben, ob es sich um eine Kern .NET-Klasse oder eine referenzierte dll
war. Im Folgenden wird ein Beispiel eines Verfahrens zum String
Klasse hinzufügen:
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
Erweiterungsmethoden Ihnen ermöglichen, um den Vorlagentyp „add“ Methoden zu bestehenden Typen , ohne einen neuen abgeleiteten Typ zu schaffen, neu zu kompilieren oder anderweitig Modifizieren .
Abhängig von der Verfügbarkeit der Quelle können Sie einen Adapter für vorhandene Funktionen in Erwägung ziehen, der die erforderlichen Methoden hinzufügt. – Dennis
Je nachdem, was Sie tun möchten, können Sie eine Klasse in einer referenzierten DLL erweitern. Sie könnten einen Decompiler verwenden, wenn Sie die Klassen in einer DLL möchten, die Namen von Variablen und Methoden können sich ändern, aber Sie können immer noch den größten Teil der Logik sehen –