Freigeben über


Empfehlungen zum Filtern von Geräten

Aktualisiert: November 2007

In diesem Thema wird das Erstellen von vergleichsbasierten Filtern und Filtern für Auswertungsdelegaten für ASP.NET Mobile-Steuerelemente beschrieben. Gerätefilter stellen einen Mechanismus zum Erstellen benannter Kriterien bereit, mit denen Sie Geräte und Eigenschaften von mobilen Geräten festlegen können. Diese Filter werden im Abschnitt <deviceFilters> der Datei Web.config gespeichert.

Jeder Gerätefilter entspricht mindestens einem Gerätetyp, und ein einziges Gerät kann mehreren Filtern entsprechen. Ein Pocket PC kann beispielsweise folgenden Filtern entsprechen: als Farbgerät dem Filter IsColor, als PDA dem Filter IsPDA und als HTML-basierter Browser dem Filter IsHTML32.

Für jeden Filter fügen Sie ein <filter>-Element im Abschnitt <deviceFilters> der Datei Web.config hinzu.

Sie können vergleichsbasierte Filter und delegatbasierte Auswertungsfilter angeben.

Vergleichsfilter

Vergleichsbasierte Filter vergleichen eine MobileCapabilities-Eigenschaft mit einem Argument. Die Syntax für einen Vergleichsfilter lautet:

<filter
    name="nameofFilter"
    compare="propertyName"
    argument="filterargument" />

In einem vergleichsbasierten Filter besitzt das <filter>-Element drei Eigenschaften:

  • Das name-Attribut, das den Namen des Filters darstellt.

  • Das compare-Attribut, das die vom Filter ausgewertete Eigenschaft enthält.

  • Das argument-Attribut, das das Argument darstellt, mit dem der propertyName-Wert verglichen wird. Wenn Sie kein Argument bereitstellen, wird null für den Vergleich verwendet.

Im folgenden Beispiel ist der Filter zutreffend, wenn der PreferredRenderingType-Wert wml11 beträgt.

<filter
    name="isWML11"
    compare="PreferredRenderingType"
    argument="wml11" />

Wenn der Filter in einem <Choice>-Element verwendet wird und die Übereinstimmung im Filter erfolgreich ist, wählt ASP.NET den gerätespezifischen Inhalt aus, der in den Vorlagen im <Choice>-Element enthalten ist.

Filter für Auswertungsdelegaten

Delegatbasierte Auswertungsfilter geben true oder false von einer benutzerdefinierten Methode zurück. Die Methode berechnet den Rückgabewert für alle Eigenschaften in der MobileCapabilities-Klasse. Anhand des zurückgegebenen Werts wird bestimmt, ob eine Übereinstimmung mit dem Filter vorliegt.

Die Syntax für einen delegatbasierten Auswertungsfilter lautet:

<filter
    name="nameOfFilter"
    type="className"
    method="methodName" />

In einem Filter für Auswertungsdelegaten sind drei Eigenschaften vorhanden:

  • Das name-Attribut, das den Namen des Filters darstellt.

  • Das type-Attribut, das den Klassentyp darstellt, der den Auswertungsdelegaten bereitstellt. Der Name muss vollqualifiziert sein. ASP.NET sucht in der angegebenen Assembly nach dem Typ.

  • Das method-Attribut, das der Name einer Methode für die Type-Klasse ist. Die Methode gibt einen booleschen Wert zurück, der angibt, ob das aktuelle Gerät diesem Filter auf Basis der an den Filter übergebenen MobileCapabilities-Instanz entspricht.

Im folgenden Beispiel ist der Filter zutreffend, wenn die IsGPSEnabled-Methode true zurückgibt.

<filter
    name="GPSEnabled"
    type="MyApplication.MyCapabilityEvaluators,MyAssembly"
    method="IsGPSEnabled"/>

Das folgende Beispiel stellt das Skelett einer Deklaration für die IsGPSEnabled-Methode dar.

namespace MyApplication
{
    public class MyCapabilityEvaluators
    {
        public static bool IsGPSEnabled(
            System.Web.Mobile.MobileCapabilities capabilities,
            String unusedArg)
        {
            // Any necessary proccessing goes here.
        }
    }
}

Sie fügen Unterstützung für einen Filter hinzu, indem Sie dem <deviceFilters>-Abschnitt der Datei Web.config eine Zeile hinzufügen. Wenn Sie beispielsweise den vorherigen Filter in die Assembly MyApplication.dll kompiliert haben, fügen Sie der Datei Web.config die folgende Zeile hinzu:

<filter name="IsGPSEnabled"
   type="MyApplication.MyCapabilityEvaluators,MyApplication"
   method="IsGPSEnabled" />

Siehe auch

Konzepte

Erweiterte Browserfunktionen

Gerätespezifische Wiedergabe

Referenz

<filter>-Element