Teilweise klassenübergreifende Assemblys

7

In meinem Framework-Projekt habe ich eine Klasse, die Tabs in einem Content-Management-System darstellt. In einigen Framewrok-Implementierungen ist es wünschenswert, diese Klasse mit Definitionen von Registerkarten zu erweitern, die für diese Implementierung spezifisch sind. Ich musste dies tun, indem ich die CmsTabs-Klasse so änderte, dass sie teilweise war:

%Vor%

Und dann Erstellen einer Klasse mit demselben Namen und Namespace in der Assembly, die das Framework implementiert.

Wenn ich jedoch die Framework-Assembly erstelle, scheint die CmsTabs-Klasse nicht mehr partiell zu sein - ihre Member sind in der implementierenden Assembly verborgen, wenn ich ihr die partielle Klasse hinzufüge. Bei der Demontage in Reflector bekomme ich das:

%Vor%

Gibt es etwas, was ich tun muss, damit es seinen Teilstatus behält, vorausgesetzt, dass es möglich ist, das zu tun, was ich versuche zu tun?

Danke.

    
Jason 20.12.2010, 15:02
quelle

3 Antworten

21

Sie können keine partiellen Klassenbereiche haben:

  

Alle Teilautypendefinitionen gemeint   Teile desselben Typs müssen sein   definiert in der gleichen Baugruppe und der   dasselbe Modul (.exe oder .dll-Datei).   Teildefinitionen können nicht überspannen   mehrere Module.

MSDN für partielle Klassen

    
kemiller2002 20.12.2010, 15:05
quelle
7

Sie können Erweiterungsmethoden verwenden, um einer Klasse in einer anderen Baugruppe neue Methoden hinzuzufügen.

    
Bohumil Janda 28.06.2011 09:16
quelle
6

Partielle Klassen sind reine Kompilierungsfunktionen.
Es ist nicht möglich, eine Klassendefinition zu erstellen, die sich über mehrere Assemblies erstreckt.

Stattdessen können Sie die Klasse zu einem nicht statischen Singleton machen und Implementierungen erlauben, die Klasse zu erben, Eigenschaften hinzuzufügen und die geerbte Version als Singleton-Instanz festzulegen.

Wenn es sich nur um eine Sammlung von const -Zeichenfolgen handelt, können Sie eine private partial -Klasse erstellen, aber in jedem Projekt eine Verknüpfung zur Datei hinzufügen.

    
SLaks 20.12.2010 15:04
quelle

Tags und Links