Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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" />