2016-06-21 7 views
0

Codierung in C# mit Visual Studio,Ist es möglich, eine Methode/Schnittstelle zu einer referenzierten DLL in C# hinzuzufügen?

Ist es möglich, ein Verfahren oder eine Schnittstelle zu einem referenzierten DLL, die ich zu meinem Projekt hinzugefügt hinzufügen?

Oder die einzige Möglichkeit besteht darin, zur Quelle der DLL zurückzukehren, fügen Sie die Daten & eine neue DLL erstellen?

+1

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

+1

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 –

Antwort

2

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 .