Freigeben über


Programmgesteuertes Auswerten von Funktionen

Aktualisiert: November 2007

Für ASP.NET Mobile-Steuerelemente kann auf die durch den <deviceFilters>-Abschnitt in der Datei Web.config bereitgestellten Funktionen mit der HasCapability-Methode der MobileCapabilities-Klasse programmgesteuert zugegriffen werden. Durch Aufrufen dieser Methode können Sie Vergleichsmethoden auswerten.

Die HasCapability-Methode ist nützlich, um programmgesteuert zu bestimmen, ob das aktuelle Gerät einem in der Datei Web.config deklarierten Gerätefilter entspricht. Die MobileCapabilities-Instanz speichert die Auswertung der HasCapability-Methode zwischen, sodass folgende Anforderungen desselben Funktionsnamens und optionalen Arguments nicht erneut ausgewertet werden müssen. Die HasCapability-Methode ist nützlich, wenn Sie Code schreiben möchten, der abgleicht, wie das ASP.NET-Seitenframework in einem <DeviceSpecific>-Element unter mehreren Möglichkeiten auswählt.

Hinweis:

Die HasCapability-Methode unterstützt keine Auswahl von <DeviceSpecific>-Elementen, mit denen auf der Seite definierte Methoden aufgerufen werden.

Die HasCapability-Methode akzeptiert zwei Argumente: capabilityName (der Name der Methode, der Eigenschaft oder des Elements zur Geräteauswertung im Funktionswörterbuch) sowie optionalArgument (ein beliebiges, für das capabilityName-Argument erforderliches Argument). Die HasCapability-Methode führt die Auswertung in folgender Reihenfolge aus:

  1. Sie überprüft, ob es sich bei dem capabilityName-Wert um den Namen eines in der Datei Web.config angegebenen Gerätefilters handelt.

    Hinweis:

    Die HasCapability-Methode wertet das <DeviceSpecific>-Konstrukt und das <Choice>-Konstrukt aus, indem das optionalArgument-Argument auf null festgelegt wird.

  2. Wenn die Überprüfung in Schritt 1 true zurückgibt und es sich bei dem Filter um eine delegierte Auswertung handelt (ein Filter, der zum Auswerten der angegebenen Daten eine benutzerdefinierte Methode verwendet), ruft die HasCapability-Methode den Delegaten mit dem im optionalArgument-Parameter bereitgestellten Argument auf und gibt das Ergebnis zurück.

  3. Wenn die Überprüfung in Schritt 1 true ist und es sich bei dem Filter um eine Vergleichsauswertung handelt (ein Filter, der einen Funktionsnamen mit einem angegebenen Wert vergleicht), ruft sich die HasCapability-Methode mit dem Funktionsnamen und Argument aus der Auswertung selbst auf (optionalArgument-Parameter werden ignoriert) und gibt das Ergebnis zurück.

  4. Wenn das MobileCapabilities-Objekt die Eigenschaft capabilityName besitzt, wandelt die HasCapability-Methode diese Eigenschaft in eine Zeichenfolge um und gibt true zurück, wenn der optionalArgument-Wert dieser Zeichenfolge entspricht. Im Gegensatz zu anderen Vergleichen wird bei booleschen Vergleichen die Groß-/Kleinschreibung nicht berücksichtigt. Deshalb ist "true" zu "True" äquivalent, nicht aber "left" zu "Left".

  5. Wenn keine capabilityName-Eigenschaft vorhanden ist, sucht die HasCapability-Methode im Funktionswörterbuch, das dem MobileCapabilities-Objekt zugeordnet ist. Wenn die capabilityName-Eigenschaft vorhanden ist, vergleicht die HasCapability-Methode sie mit dem optionalArgument-Parameter und gibt das Ergebnis zurück. Eine Umwandlung ist nicht erforderlich, da das Wörterbuch Zeichenfolgen verwaltet.

  6. Wenn diese Überprüfungen fehlschlagen, löst die HasCapability-Methode eine ArgumentOutOfRangeException-Ausnahme aus.

Beispiele

Die folgenden Beispiele zeigen, wie Sie die HasCapability-Methode aufrufen können, wobei GPSEnabled und ScreenBitDepth definierte Filter, Eigenschaften oder Werte in der Items-Auflistung darstellen.

((MobileCapabilities)Request.Browser).HasCapability("GPSEnabled", null);

Alternativ können Sie die Methode folgendermaßen aufrufen:

((MobileCapabilities)Request.Browser).HasCapability("ScreenBitDepth", "8");

Siehe auch

Konzepte

Geräteauswertungsverfahren

Empfehlungen zum Filtern von Geräten

Gerätespezifische Wiedergabe

Referenz

Tabelle der Gerätefunktionen

<filter>-Element