Count | |
Integer = Application.Count | |
Gibt einen Integer zurück, der die Anzahl von Elementen angibt, die momentan in der Sammlung Application enthalten sind. Die Eigenschaft Count wird aus der durch die Klasse HttpApplicationState implementierten ICollection-Schnittstelle abgeleitet. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel fügt der Sammlung Application zwei Werte hinzu, zeigt die Anzahl von Elementen in der Sammlung Application an und verwendet dann die Eigenschaft Count als Schleifenkontrollwert, um jedes Element anzuzeigen: |
|
Sub Page_Load( ) Application.Clear( ) Application("foo") = "Hello, " Application("bar") = "World!" Message.Text = "The Application collection contains " & _ Application.Count & " items: " Dim I as Integer For I = 0 To Application.Count - 1 Message.Text &= Application(I) Next End Sub |
|
Hinweise | |
Die Eigenschaft Count wurde in ASP.NET neu eingeführt. Sie können diese Eigenschaft nicht nur zum Durchlaufen der Sammlung Application verwenden, sondern damit auch protokollieren, wie viele Elemente eine Anwendung zu einem bestimmten Zeitpunkt enthält. Diese Informationen könnten dann für spätere Kontrollzwecke in ein Protokoll geschrieben werden. |
Item | |
Object = Application.Item(ByVal name As String) Application.Item(ByVal name As String) = Object Object = Application.Item(ByVal index As Integer) Application.Item(ByVal index As Integer) = Object | |
Gibt ein mit einem bestimmten Namen oder Index verknüpftes Objekt zurück oder legt es fest. |
|
Parameter
|
|
Beispiel | |
Im folgenden Beispiel wird der Wert von zwei Elementen in der Sammlung Application festgelegt. Sind diese Elemente noch nicht in der Sammlung enthalten, werden sie hinzugefügt. Das Beispiel zeigt dann die beiden Werte an. |
|
Sub Page_Load( ) Application.Clear( ) Application.Item("foo") = "foo" Application.Item("foo2") = "foo2" Message.Text = Application.Item("foo") & "<br/>" Message.Text &= Application.Item(1) End Sub |
|
Hinweise | |
Auf die Eigenschaft Item kann mit folgender Syntax implizit zugegriffen werden: Application("foo") = "foo" Diese Syntax taucht in ASP-Code häufig auf. Explizites Referenzieren der Eigenschaft Item ist nicht erforderlich. Der Code wird u. U. aber leichter les- und nachvollziehbar, wenn Sie diese Eigenschaft auflisten und nicht nur implizit darauf zugreifen. Ein Index kann nur als Argument verwendet werden, wenn ein Wert geändert wird, nicht wenn ein neues Element erstellt wird. Außerdem muss der Indexwert kleiner als die Anzahl von Elementen in der Sammlung Application sein, da sonst ein Ausnahmefehler ausgelöst wird. |
AllKeys | |
Dim StateVars(Application.Count) As String StateVars = Application.AllKeys | |
Gibt ein Stringarray mit Schlüsselnamen zurück, die im HttpApplicationState-Objekt gespeichert sind. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel zeigt alle Schlüssel der im Objekt Application gespeicherten Daten an: |
|
Sub Page_Load( ) Dim I as Integer Dim StateVars(Application.Count - 1) As String StateVars = Application.AllKeys For I = 0 to StateVars.Length - 1 Message.Text = Message.Text + StateVars(I) + "<br/>" Next I End Sub |
|
Hinweise | |
Diese Eigenschaft liefert eine Liste von Schlüsselnamen, die allen aktuellen Anwendungsvariablen zugewiesen sind. |
Contents | |
HttpApplicationState = Application.Contents | |
Gibt eine Referenz zur aktuellen Instanz von HttpApplicationState zurück. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel ruft die Methode RemoveAll durch Referenz auf die Sammlung Contents auf und schreibt dann eine Meldung: |
|
Sub Page_Load( ) Application.Contents.RemoveAll( ) Message.Text = "Removed all items from current Application." End Sub |
|
Hinweise | |
Diese Eigenschaft gewährleistet die Rückwärtskompatibilität mit ASP. Auf Eigenschaften wie Item und Methoden wie Remove und RemoveAll wird in ASP über die Eigenschaft Contents zugegriffen. In neuen ASP.NET-Entwicklungen sollten Sie auf diese Elemente direkt zugreifen. Anstatt z. B. die Methode RemoveAll über die Eigenschaft Contents aufzurufen, können Sie die Methode RemoveAll direkt aufrufen: Application.RemoveAll( ) |
Keys | |
KeysCollection = Application.Keys | |
Gibt eine NameObjectCollectionBase.KeysCollection mit den Stringschlüsseln zurück, die allen in der Sammlung Application enthaltenen Werten zugeordnet sind. |
|
Parameter
|
|
Beispiel | |
Mit diesem Beispiel wird die Sammlung der Schlüssel in der Sammlung Application durchlaufen und anschließend werden durch die Eigenschaft Text des Steuerelements Message der Name und der zugehörige Wert des Schlüssels angezeigt: |
|
Sub Page_Load( ) Dim Key As String Message.Text = "Application Keys:" For Each Key in Application.Keys Message.Text &= "<br/>Key:&;&;&;" & Key Message.Text &= "<br/>Value:&;&;&;" & Application(Key) Next End Sub |
|
Hinweise | |
Die Eigenschaft Keys stellt eine der vielen Möglichkeiten dar, den Inhalt der Sammlung Application zu durchlaufen. |
StaticObjects | |
HttpStaticObjectsCollection = Application.StaticObjects | |
Gibt eine HttpStaticObjectsCollection zurück, die alle in global.asax instanziierten Objekte enthält. Dazu wird die Syntax <object runat="server"> verwendet, wobei das Attribut scope auf Application gesetzt ist. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel zeigt mithilfe der Eigenschaft Count der Klasse HttpStaticObjectsCollection die Anzahl von Objekten in der aktuellen Anwendung an, die mit der Syntax <object scope="Application" runat="server"/> in global.asax deklariert werden. Anschließend wird der Typ jedes Objekts ermittelt. Handelt es sich um ein Websteuerelement vom Typ TextBox, wird es zur Sammlung Controls der aktuellen Seite hinzugefügt. |
|
Sub Page_Load( ) Message.Text = "There are " & Application.StaticObjects.Count & _ " objects declared with the " & _ "<object runat="server"> syntax " & _ "in Application scope." Dim myobj As Object For Each myObj in Application.StaticObjects If myObj.Value.GetType.ToString( ) = _ "System.Web.UI.WebControls.TextBox" Then Page.Controls.Add(myObj.Value) End If Next End Sub |
|
Hinweise | |
Diese Eigenschaft gewährleistet die Rückwärtskompatibilität mit ASP. Bedenken Sie vor der Instanziierung von Objekten auf Sitzungs- oder Anwendungsebene die Auswirkungen, die solche Objekte auf Ressourcen und die Skalierbarkeit von Anwendungen haben. In den meisten Fällen ist es ratsam, die Gültigkeit von Objekten auf einzelne Seiten zu beschränken. Jedes Objekt in der Sammlung wird durch die DictionaryEntry-Struktur repräsentiert. Auf den Schlüssel und den Wert kann nicht direkt zugegriffen werden. Verwenden Sie zum Zugriff auf den Schlüssel und/oder den Wert die Schlüssel- und/oder Wertelemente der DictionaryEntry-Struktur. |
Add | |
Application.Add(ByVal name As String, ByVal value As Object) | |
Fügt der Sammlung Application einen Wert hinzu. |
|
Parameter
|
|
Beispiel | |
Das folgende Beispiel fügt der Sammlung Application ein Element hinzu und zeigt es an: |
|
Sub Page_Load( ) Application.Add("Added", "AddedValue") Message.Text = Application("Added") End Sub |
|
Hinweise | |
Die in ASP.NET neu hinzugekommene Methode Add bietet ein Verfahren, um Elemente der Sammlung Application hinzuzufügen, das mit dem Verfahren zum Hinzufügen von Elementen zu anderen .NET-Sammlungen konsistent ist. Natürlich können Sie weiterhin die herkömmliche ASP-Syntax zum direkten Indizieren des Application-Objekts über den Schlüsselnamen oder -index verwenden. |
Clear | |
Application.Clear( ) | |
Löscht den Inhalt der Sammlung Application. |
|
Parameter | |
Keine | |
Beispiel | |
Dieses Beispiel löscht den Inhalt der Sammlung Application und schreibt eine Meldung mit der aktuellen Anzahl der in der Sammlung enthaltenen Elemente an die Eigenschaft Text des Steuerelements Message. Die Anzahl sollte 0 sein. |
|
Sub Page_Load( ) Application.Clear( ) Message.Text = "There are " & Application.Count & _ " items in the Application collection." End Sub |
|
Hinweise | |
Die in ASP.NET neu hinzugekommene Methode Clear löscht nur den Inhalt der Sammlung Application selbst. Der Inhalt der Sammlung StaticObjects wird nicht gelöscht. |
Get | |
Application.Get(ByVal name As String) Application.Get(ByVal Index As Integer) | |
Ruft ein Element der Sammlung Application nach seinem Namen oder nach seiner Positionsnummer (Index) in der Sammlung Application ab. Normalerweise wird der Name für Get-Aufrufe verwendet, es sei denn, Sie müssen Elemente der Sammlung in einer Schleife abrufen. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel legt einen Wert fest und ruft ihn aus der Sammlung Application ab. Außerdem wird mit der Methode Get eine Meldung an die Eigenschaft Text des Steuerelements Message geschrieben, die den aktuellen Wert des der Sammlung Application neu hinzugefügten Werts enthält. |
|
Sub Page_Load( ) Application("GetTest") = "Got it!" Message.Text = "GetTest = " & Application.Get("GetTest") End Sub |
|
Hinweise | |
Um zu ermitteln, ob ein Namenswert in der Sammlung Application gespeichert wird, müssen Sie sicherstellen, dass sein Wert nicht null ist, wie in folgendem Codebeispiel gezeigt: If Not Application("Foo") is Nothing then Message.Text = "Foo is set to " & Application.Get("Foo") End If |
GetKey | |
Application.GetKey(ByVal Index As Integer) | |
Ruft den Schlüsselnamen ab, der dem Index eines im Objekt Application gespeicherten Datenelements entspricht. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel entfernt alle Werte aus der Sammlung Application, um von einem bekannten Zustand aus zu beginnen. Anschließend wird ein einzelner Wert in die Sammlung Application geschrieben. Zum Schluss wird der Schlüssel des ersten Elements (Index 0) durch Aufruf von GetKey in das Steuerelement Message geschrieben. |
|
Sub Page_Load( ) Application.RemoveAll( ) Application("GetKeyTest") = "Got it!" Message.Text = "Key of Application(0) = " & _ Application.GetKey(0) & _ "<br/>(Should be GetKeyTest)" End Sub |
|
Hinweise | |
Wenn Index kleiner als 0 oder größer als Application.Count - 1 ist, wird eine ArgumentOutOfRangeException ausgelöst. |
Lock | |
Application.Lock | |
Sperrt den Zugriff auf eine Application-Sammlung, um die Zugriffssynchronisation zu erleichtern. |
|
Parameter | |
Keine | |
Beispiel | |
Dieses Beispiel sperrt die Anwendung, setzt eine Variable zum Zählen der Ladevorgänge der Anwendungsseite, entsperrt die Anwendung und zeigt dann den Wert an: |
|
Sub Page_Load( ) Application.Lock( ) Application("Counter") = Application("Counter") + 1 Application.UnLock( ) Message.Text = "Counter = " & Application("Counter") End Sub |
|
Hinweise | |
In diesem Beispiel wird die Anwendung gesperrt; danach werden alle Vorgänge, die innerhalb der Sammlung Application Werte ändern, durchgeführt und die Anwendung wird dann so schnell wie möglich wieder entsperrt. Alle Schreibzugriffe auf die Sammlung Application können außerhalb der Aufrufe der Methoden Lock und Unlock problemlos stattfinden. |
Remove | |
Application.Remove(ByVal name As String) | |
Entfernt ein Element nach Namen aus der Sammlung Application. |
|
Parameter
|
|
Beispiel | |
Dieses Beispiel ermittelt, ob die Sammlung Application ein Element mit dem Schlüssel "foo" enthält. Wenn ja, wird dieses Element entfernt und eine entsprechende Meldung angezeigt: |
|
Sub Page_Load( ) If Not Application("foo") Is Nothing Then Application.Remove("foo") Message.Text = "Item 'foo' was removed." Else Message.Text = "Item 'foo' does not exist." End If End Sub |
|
Hinweise | |
Die Eigenschaft Remove gewährleistet die Rückwärtskompatibilität mit ASP. In ASP wird auf diese Methode über die Sammlung Contents zugegriffen. In ASP.NET kann auf diese Methode entweder, wie oben beschrieben, direkt oder über die Sammlung Contents zugegriffen werden. |
RemoveAll | |
Application.RemoveAll( ) | |
Entfernt alle Elemente aus der Sammlung Application. |
|
Parameter | |
Keine | |
Beispiel | |
Dieses Beispiel prüft, ob mindestens ein Element in der Sammlung Application enthalten ist. Wenn ja, wird die Sammlung über die Methode RemoveAll gelöscht. |
|
Sub Page_Load( ) If Application.Count > 0 Then Application.RemoveAll( ) Message.Text = "Application collection cleared." Else Message.Text = "Application collection is already empty." End If End Sub |
|
Hinweise | |
Die Eigenschaft RemoveAll gewährleistet die Rückwärtskompatibilität mit ASP. In ASP wird auf diese Methode über die Sammlung Contents zugegriffen. In ASP.NET kann auf diese Methode entweder, wie oben beschrieben, direkt oder über die Sammlung Contents zugegriffen werden. |
RemoveAt | |
Application.RemoveAt(ByVal index As Integer) | |
Entfernt ein Element anhand seines Index aus der Sammlung Application. Diese Methode ergänzt die Methode Remove, die Element anhand seines Schlüssels entfernt. |
|
Parameter
|
|
Beispiel | |
Sub Page_Load( ) If Application.Count > 0 Then Application.RemoveAt(0) Message.Text = "The item at index 0 was removed." Else Message.Text = "The item at index 0 does not exist." End If End Sub |
|
Hinweise | |
Mit der Methode RemoveAt können Elemente anhand ihres Index (anstatt anhand ihres Schlüssels) aus der Sammlung Application entfernt werden. Wie im Beispiel oben werden alle auf das entfernte Element folgenden Elemente in der Sammlung um eine Position verschoben. Wenn Sie ein Element anhand seines Index entfernen und anschließend RemoveAt erneut mit demselben Index aufrufen, wird das direkt auf das zuvor entfernte Element folgende Element entfernt. Wenn die Sammlung Application nur ein einziges Element enthält und Sie RemoveAt zweimal aufrufen, wird eine ArgumentOutOfRangeException ausgelöst. |
Set | |
Application.Set(ByVal name As String, ByVal value As Object) | |
Aktualisiert den Wert eines Objekts in der Sammlung Application. Mit dieser Methode können Sie Objekte in der Sammlung Application festlegen. |
|
Parameter
|
|
Beispiel | |
In diesem Beispiel wird Set zweimal verwendet: einmal, um ein neues Element in der Sammlung Application festzulegen und ein weiteres Mal, um seinen Wert zu ändern. |
|
Sub Page_Load( ) Application.RemoveAll( ) Application.Set("TotallyNewVariable","Test!") Message.Text = "First: " + Application("TotallyNewVariable") + "<br/>" Application.Set("TotallyNewVariable","Test again!") Message.Text = Message.Text & "First after Set: " + Application("TotallyNewVariable") + "<br/>" End Sub |
|
Hinweise | |
Sie können mit Set der Sammlung Application Werte hinzufügen. In der Regel werden Sie dafür aber sicherlich die einfache Syntax verwenden, die Sie aus ASP kennen: Application("TotallyNewVariable") = "Test!" |
UnLock | |
Application.UnLock | |
Hebt die Zugriffssperre für eine Application-Sammlung auf, um die Zugriffssynchronisation zu erleichtern. |
|
Parameter | |
Keine | |
Beispiel | |
Dieses Beispiel sperrt die Anwendung, setzt eine Variable zum Zählen der Ladevorgänge der Anwendungsseite, entsperrt die Anwendung und zeigt dann den Wert an: |
|
Sub Page_Load( ) Application.Lock( ) Application("Counter") = Application("Counter") + 1 Application.UnLock( ) Message.Text = "Counter = " & Application("Counter") End Sub |
|
Hinweise | |
In diesem Beispiel wird die Anwendung gesperrt; danach werden alle Vorgänge, die innerhalb der Sammlung Application Werte ändern, durchgeführt und die Anwendung wird dann so schnell wie möglich wieder entsperrt. Alle Schreibzugriffe auf die Sammlung Application können außerhalb der Aufrufe der Methoden Lock und Unlock problemlos stattfinden. |
Start | |
Sub Application_OnStart( ) 'Event handler logic End Sub | |
Wird ausgelöst, wenn die Anwendung erstellt wird. Die Ereignisbehandlungsroutine für dieses Ereignis sollte in der Anwendungsdatei global.asax definiert werden. |
|
Parameter | |
Keine | |
Beispiel | |
Dieses Beispiel schreibt einen Eintrag in das Ereignisprotokoll und das IIS-Protokoll der Anwendung, um anzuzeigen, dass das Ereignis Application_OnStart ausgelöst wurde: |
|
<Script language="VB" runat="server"> Sub Application_OnStart( ) Dim EventLog1 As New System.Diagnostics.EventLog ("Application", _ ".", "mySource") EventLog1.WriteEntry("Application_OnStart fired!") Context.Response.AppendToLog("Application_OnStart fired!") End Sub </script> In diesem Codebeispiel verbirgt sich ein Problem. Da die Sicherheitsvorkehrungen in der Release-Version des .NET-Frameworks verschärft wurden, funktioniert das Schreiben in das Ereignisprotokoll in ASP.NET-Anwendungen standardmäßig nicht. |
|
Hinweise | |
Das Ereignis Application_OnStart ist für Initialisierungsaufgaben beim Initialisieren der Anwendung nützlich. Sie können Anwendungsvariablen initialisieren, die hauptsächlich statisch sind. |
End | |
Sub Application_OnEnd( )'Event handler logic End Sub | |
Wird ausgelöst, wenn die Anwendung nicht mehr besteht, weil der Webserver angehalten oder die Datei global.asax geändert wurde. Die Ereignisbehandlungsroutine für dieses Ereignis sollte in der Anwendungsdatei global.asax definiert werden. |
|
Parameter | |
Keine | |
Beispiel | |
Dieses Beispiel schreibt einen Eintag in das Ereignisprotokoll der Anwendung, um anzuzeigen, dass das Ereignis Application_OnEnd ausgelöst wurde. |
|
<Script language="VB" runat="server"> Sub Application_OnEnd( ) Dim EventLog1 As New System.Diagnostics.EventLog ("Application", _ ".", "mySource") EventLog1.WriteEntry("Application_OnEnd fired!") End Sub </script> |
|
Hinweise | |
Das Ereignis End eignet sich für Löschvorgänge, wenn eine Anwendung beendet wird, weil der Webservice angehalten oder die Datei global.asax geändert wird. |