Ich habe eine gemeinsame Assembly/Projekt, die eine abstrakte Basisklasse hat, dann mehrere abgeleitete Klassen, die ich für andere Assemblys veröffentlichen möchte.Interne abstrakte Klasse: Wie kann man die Verwendung außerhalb der Baugruppe ausblenden?
Ich will nicht die abstrakte Basisklasse in anderen Baugruppen in Intellisense zeigen, so dass ich dachte, dass ich es internal
machen würde, aber ich bekomme diese Fehlermeldung:
Inconsistent accessibility: base class 'Settings' is less accessible than class 'IrcSettings' ....
ich nicht tun hol das wirklich. Ich bin gezwungen, die abstrakte Settings
Klasse public
, und damit sichtbar außerhalb dieser Baugruppe.
Wie kann ich diese Klasse internal
stattdessen machen?
Nur ein kleiner Punkt, Sie können Schnittstellen als Basistyp haben, der innerhalb der Assembly ist, aber seine Mitglieder (der Implementierung) werden öffentlich sein (außerhalb der Assembly verfügbar). Wenn die abstrakte Klasse keine Implementierung hat und alle Mitglieder öffentlich sind, sollte man die Schnittstelle bevorzugen. – nawfal