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.
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.
Sie können Erweiterungsmethoden verwenden, um einer Klasse in einer anderen Baugruppe neue Methoden hinzuzufügen.
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.
Tags und Links .net c# partial-classes