2 Stimmen

C# - Expose eine statische Klasse innerhalb einer normalen Klasse?

Hier ist ein einfaches Beispiel:

ASP.NET bietet mehrere statische Klassen rund um den Membership Provider. Wir werden sie immer in unseren Seiten verwenden. Wir müssen auch die Basis erweitern System.Web.UI.Page Klasse. Ein Gedanke, den wir hatten, war also, die verschiedenen statischen Klassen in unserer UnsereFirma.Web.UI.Seite Umsetzung.

Wir können keine Variable verwenden:

System.Web.Security.Roles myRoles;

Wir können sie nicht als Eigenschaft ausweisen:

internal System.Web.Security.Roles Roles { get { return System.Web.Security.Roles; } }

Wir können sie nicht erben:

internal class Roles : System.Web.Security.Roles

Ist es möglich, die statische Klasse zu veröffentlichen?

5voto

Jon Skeet Punkte 1325502

Was meinen Sie mit "expose"? Die statischen Klassen sind bereits für jeden verfügbar, der sie verwenden möchte.

Es klingt, als ob Sie möglicherweise versuchen, von einer Klasse abzuleiten oder eine Eigenschaft zu verwenden, nur um so viel Tipparbeit zu vermeiden - das ist eine schlechte Idee. Vererbung ist für die Spezialisierung da, nicht um Namen leichter zugänglich zu machen :) Verwenden Sie einfach eine using-Anweisung:

using System.Web.Security;

und dann können Sie Roles.XXX an beliebiger Stelle in diesem Code.

1voto

zincorp Punkte 3264

Ich weiß nicht unbedingt, warum Sie das tun wollen, aber Sie könnten Ihre eigene Rollenklasse erstellen und die Methoden aus der statischen Klasse klonen, und innerhalb dieser Methoden einfach die Methoden der statischen Klasse aufrufen.

0voto

Scott Anderson Punkte 11965

Versuchen Sie, System.Web.UI.Page mit Ihren eigenen zusätzlichen Methoden usw. zu erweitern? Wenn ja, warum nicht die Vererbung nutzen und Ihre Seite von System.Web.UI.Page erben lassen. Dann müssen Sie nur noch Ihre verschiedenen ASPX-Seiten so ändern, dass sie Ihre Seite anstelle der Standard-Seite verwenden. Wenn Sie das wollen, Lesen Sie diesen Artikel für ein anständiges Beispiel.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X