Partager via


Évaluation des fonctionnalités par programme

Pour les contrôles mobiles ASP.NET, la fonctionnalité fournie via la section <deviceFilters> du fichier Web.config est accessible par programme grâce à la méthode HasCapability de la classe MobileCapabilities. En appelant cette méthode, vous pouvez évaluer les méthodes de comparaison.

La méthode HasCapability permet de déterminer par programme si le périphérique actif correspond à un filtre de périphérique déclaré dans le fichier Web.config. L'instance MobileCapabilities met en cache l'évaluation de la méthode HasCapability de telle sorte qu'il ne soit pas nécessaire de réévaluer les demandes ultérieures liées à un nom de fonctionnalité et à un argument facultatif identiques. La méthode HasCapability s'avère utile pour écrire du code correspondant à la façon dont l'infrastructure de page ASP.NET sélectionne un choix parmi d'autres dans un élément <DeviceSpecific>.

Notes

La méthode HasCapability ne prend pas en charge les choix d'éléments <DeviceSpecific> qui appellent des méthodes définies sur la page.

La méthode HasCapability possède deux arguments : capabilityName, qui représente le nom de la méthode, de la propriété ou de l'élément d'évaluation du périphérique dans le dictionnaire des fonctionnalités, et optionalArgument, qui représente n'importe quel argument requis par l'argument capabilityName. La méthode HasCapability effectue son évaluation dans l'ordre suivant :

  1. Elle vérifie si la valeur capabilityName correspond au nom d'un filtre de périphérique spécifié dans le fichier Web.config.

    Notes

    La méthode HasCapability évalue la construction <DeviceSpecific> et <Choice> en affectant à l'argument optionalArgument la valeur null.

  2. Si le test de l'étape 1 retourne true et si le filtre est un évaluateur délégué (un filtre qui utilise une méthode personnalisée pour évaluer les données spécifiées), la méthode HasCapability appelle le délégué avec l'argument du paramètre optionalArgument, puis retourne le résultat.

  3. Si le test de l'étape 1 retourne true et si le filtre est un évaluateur de comparaison (un filtre qui compare un nom de fonctionnalité à une valeur spécifiée), la méthode HasCapability s'appelle elle-même à partir du nom de fonctionnalité et de l'argument fournis dans l'évaluateur (les paramètres optionalArgument d'origine sont ignorés), puis retourne le résultat.

  4. Si l'objet MobileCapabilities possède une propriété nommée capabilityName, la méthode HasCapability effectue un cast de cette propriété dans une chaîne et retourne true si la valeur optionalArgument correspond à la chaîne. Les comparaisons Boolean ne respectent pas la casse ; les autres comparaisons respectent la casse. Par conséquent, "true" équivaut à "True", mais "left" n'équivaut pas à "Left".

  5. Si aucune propriété capabilityName n'existe, la méthode HasCapability recherche dans le dictionnaire de fonctionnalités associé à l'objet MobileCapabilities. Si la propriété capabilityName existe, la méthode HasCapability la compare au paramètre optionalArgument, puis retourne le résultat. Dans la mesure où le dictionnaire conserve les chaînes, aucun casting n'est requis.

  6. Si les tests échouent, la méthode HasCapability lève une exception ArgumentOutOfRangeException.

Exemples

Les exemples suivants montrent comment appeler la méthode HasCapability, lorsque GPSEnabled et ScreenBitDepth sont des filtres, des propriétés ou des valeurs définis dans la collection Items.

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

Vous pouvez également appeler la méthode comme suit :

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

Voir aussi

Référence

Tableau des fonctionnalités de périphérique
<filter>, élément

Concepts

Méthodes d'évaluation de périphérique
Recommandations sur le filtrage de périphérique
Rendu spécifique au périphérique