Frage

Ich habe eher von Hinzufügen von Eigenschaften zu meinen ASP.NET-Seiten scheuen. Es schien nie wie eine gute Idee zu mir. Doch vor kurzem habe ich die Praxis in einigen Beispielanwendungen verwendet gesehen. Habe meine Abneigung benutzerdefinierte Eigenschaften zu einer Seite unberechtigt gewesen, das Hinzufügen oder ist dies ein „es kommt“ Situation?

War es hilfreich?

Lösung

Die Sache über Eigenschaften, die Sie sich merken müssen, ist, dass sie für die gesamte Seite Lebenszyklus dauern. Dies macht sie sowohl sehr nützlich (eine Eigenschaft früh im Lebenszyklus festgelegt und es ist später noch gültig) und gefährlich (es ist einfach eine Eigenschaft zuzugreifen, bevor sie eingestellt ist, oder gar nicht, eine andere Phase des Lebenszyklus auf Sie geändert).

Ein Bereich I Eigenschaften mit großem Erfolg eingesetzt gesehen habe, ist als ein guter typsichere Weg, um die Query-String-und Session zu wickeln. Definieren Sie Eigenschaften für jede Ihrer erwarteten Abfrage-String oder Sitzungswerte und es wird sehr klar, zukünftige Entwickler, was erwartet wird und verfügbar ist.

Eine weitere gebräuchliche Anwendung ist Viewstate Artikel zu wickeln. Ich erwarte, dass das ist, wo man sie in den Proben ist zu sehen, da die meisten Proben Viewstate zu übernehmen neigen eingeschaltet sind.

Andere Tipps

Ich sehe nichts falsch mit Eigenschaften zur Reinigung auf einer Server-Seite Seite den Code verwenden. Ich mag Eigenschaften verwenden Sitzungsstatus oder View State Informationen zuzugreifen, auf diese Weise, wenn ich ändern, wie ich auf die Daten zugreifen, ich nur einen Ort ändern.

Asp.net nicht unterstützt nicht Konstruktor basierte Injektion. Dies ist ein klares Szenario, in dem Sie asp.net Eigenschaften verwenden möchten (wie Sie Eigenschaft basierend Injektion verwenden).

Update 1: Hier ist ein ähnliches Szenario aber für Kontrollen - Wie Dependency Injection mit ASP.NET Web Forms verwenden

Update 2: Es ist in Ordnung, sie zu benutzen Ansichtszustand oder Query-String zu wickeln. Ich würde vorsichtig obwohl es betrachtet, wie Sie nicht über den Code-Behind missbrauchen wollen. Wenn Sie sehen, Sie verwenden eine der Wickeleigenschaften auf der Code-Behind viele Male, ist es wahrscheinlich zu viel Code in der Code-Behind. Betrachtet man es auf diese Weise, hat den Nebeneffekt, wiederholtes Gießen / Parsing vermieden werden, die zu diesen Eigenschaften zugeordnet werden können.

Es ist nichts falsch mit Eigenschaften auf einer Seite. Sie könnten sehen seltsam, da eine Seite nur selten als ein Objekt von externem Code manipuliert wird, aber es kann getan werden. Da die meisten Objekte auf einer Seite können privat markiert werden. Wie alle Dinge, gibt es Ausnahmen.

Eines der größten Einsatz ich Objekte auf meiner Seite haben, wenn ein Ansichtsstatus Wert Verpackung:

protected string TaskName
{
    get { return (string)ViewState["TaskName"] ?? string.Empty; }
    set { ViewState["TaskName"] = value; }
}

In diesem Fall habe ich die Eigenschaft als „geschützt“ gekennzeichnet, die mich von meinem Markup zugreifen kann.

Warum soll es schlecht sein? Eigenschaften sind wirklich nur Methoden, und ich bin sicher, dass Sie Methoden hinzufügen Seite die ganze Zeit.

Ich benutze Eigenschaften auf meinen asp.net Seiten Session, Viewstate und Abfragezeichenfolgeflag zuzugreifen. Es macht einfach Sie weniger Code schreiben und erhöht die Lesbarkeit

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