Wie kann ich eine öffentliche Klasse verhindern, dass Erweiterungsmethoden erscheinen in Intellisense bietet?

StackOverflow https://stackoverflow.com/questions/295287

Frage

Gibt es eine Möglichkeit zu ‚verstecken‘ den Namen einer Klasse, deren einziger Zweck es ist, Erweiterungsmethoden zur Verfügung zu stellen, von Intellisense?

Ich möchte den Klassennamen aus der Intellisense-Liste entfernen, aber die Erweiterung Methoden der Klasse müssen externe Baugruppen über Intellisense in gewohnter Weise zur Verfügung stehen.

War es hilfreich?

Lösung

Ok, ich habe die Antwort auf diese Frage. Hallgrim Vorschlag der Kennzeichnung die Klasse mit ..

[EditorBrowsable(EditorBrowsableState.Never)]

.. funktioniert tatsächlich aber nur dort, wo die Montage ist die verwiesen wird, anstatt das Projekt, wie es der Fall in meiner eigenen VS Lösung wäre, die Montage beim Schreiben, der die Klasse zur Verfügung stellt. Die Erweiterungsmethoden sind wie gewohnt zur Verfügung.

Andere Tipps

erwartete ich, dass Sie mit dem EditorBrowsable Attribute könnten dies:

[EditorBrowsable(EditorBrowsableState.Never)]
static class MyExtensions { }

Leider scheint dies nicht zu funktionieren.

Wollen Sie mögen, um die Klasse verstecken oder die Erweiterungsmethoden?

Wenn Sie die statische Klasse in einem eigenen Namensraum setzen, dann jeder Code, die nicht diesen Namespace mit einem using-Direktive nicht importiert nicht „sehen“, die Erweiterungsmethoden.

Wenn Sie Ihre Erweiterungsmethoden in einem Modul setzen gibt es ein Attribut namens HideModuleName, die die Modulnamen angezeigt werden, in Intellisense verstecken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top