Condividi tramite


Suggerimenti per l'applicazione di filtri di periferica

Aggiornamento: novembre 2007

In questo argomento viene descritto come creare filtri basati sul confronto o filtri basati su delegati evaluator per i controlli mobili ASP.NET. I filtri di periferica rappresentano un meccanismo per la creazione di criteri denominati che possono essere utilizzati per specificare dispositivi o proprietà di dispositivi mobili. I filtri vengono archiviati nella sezione <deviceFilters> del file Web.config.

Ogni filtro di periferica corrisponde a uno o più tipi di dispositivo e un singolo dispositivo può corrispondere a più filtri. Un Pocket PC può ad esempio corrispondere al filtro IsColor in quanto dispositivo a colori, al filtro IsPDA in quanto PDA e al filtro IsHTML32 in quanto browser HTML.

Per ogni filtro, aggiungere un elemento <filter> nella sezione <deviceFilters> del file Web.config.

È possibile specificare filtri basati sul confronto e filtri basati su delegati evaluator.

Filtri basati sul confronto

I filtri basati sul confronto confrontano il valore di una proprietà MobileCapabilities con un argomento. Di seguito viene indicata la sintassi di un filtro basato sul confronto:

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

In questo tipo di filtro l'elemento <filter> presenta le tre proprietà descritte di seguito:

  • L'attributo name, ovvero il nome del filtro.

  • L'attributo compare, contenente la proprietà valutata dal filtro.

  • L'attributo argument, ovvero l'argomento con cuiviene confrontato il valore propertyName. Se non viene fornito alcun argomento, per il confronto viene utilizzato il valore null.

Se nell'esempio riportato di seguito il valore della proprietà PreferredRenderingType è wml11, il filtro individua la corrispondenza.

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

Se il filtro viene utilizzato in un elemento <Choice> e viene individuata la corrispondenza, ASP.NET seleziona il contenuto specifico di un dispositivo incluso nei modelli dell'elemento <Choice>.

Filtri basati su delegati di valutazione

I filtri basati su delegati evaluator restituiscono true o false da un metodo personalizzato. Il metodo calcola il valore restituito per qualunque proprietà della classe MobileCapabilities. Il valore restituito viene utilizzato per verificare se il filtro individua la corrispondenza o meno.

Di seguito viene indicata la sintassi di un filtro basato su delegati evaluator:

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

Un filtro basato su delegati di valutazione presenta le tre proprietà descritte di seguito.

  • L'attributo name, ovvero il nome del filtro.

  • L'attributo type, ovvero il tipo di classe che fornisce il delegato evaluator. Il nome deve essere completo. ASP.NET esegue una ricerca dell'assembly specificato in base al tipo.

  • L'attributo method, ovvero il nome di un metodo nella classe Type. Il metodo restituisce un valore booleano che indica se il dispositivo corrente soddisfa il filtro in base all'istanza MobileCapabilities passata.

Se nell'esempio riportato di seguito il metodo IsGPSEnabled restituisce true, il filtro individua la corrispondenza.

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

Nell'esempio riportato di seguito viene indicata la struttura della dichiarazione per il metodo IsGPSEnabled.

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

Per aggiungere il supporto per un filtro, aggiungere una riga alla sezione <deviceFilters> del file Web.config. Se ad esempio il filtro precedente è stato compilato in un assembly denominato MyApplication.dll, aggiungere la riga seguente al file Web.config:

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

Vedere anche

Concetti

Funzionalità estese del browser

Rendering specifico di dispositivo

Riferimenti

Elemento <filter>