Condividi tramite


Selezione avanzata del formato

In questo esempio viene descritto come estendere il modello di programmazione REST di Windows Communication Foundation (WCF) per supportare i nuovi formati di risposta in uscita. Nell'esempio viene inoltre utilizzato un modello T4 per restituire la risposta come pagina XHTML, a dimostrazione di come sia possibile implementare un modello di programmazione dello stile di visualizzazione.

Dettagli dell'esempio

L'esempio è costituito da un servizio semplice e dal codice client che effettua le richieste al servizio. Il servizio supporta una singola operazione [WebGet] che dispone della firma del metodo seguente: Message EchoListWithGet(string list);

Quando il client invia una richiesta al servizio, fornisce un elenco delimitato da virgole degli elementi inclusi nel parametro della stringa di query list e il servizio restituisce lo stesso elenco in uno dei formati seguenti: XML, JSON, Atom, XHTML o jpeg.

Il formato di risposta restituito dal servizio viene innanzitutto determinato da un parametro della stringa di query format e quindi da un'intestazione HTTP Accept fornita con la richiesta. Se il valore del parametro della stringa di query format corrisponde a uno dei formati precedenti, la risposta viene restituita in tale formato. Se la stringa di query format non è presente, il servizio scorre gli elementi dell'intestazione Accept inclusa nella richiesta e restituisce il formato del primo tipo di contenuto supportato dal servizio.

È opportuno notare il tipo restituito dall'operazione. Il modello di programmazione REST di WCF supporta a livello nativo solo i formati di risposta XML e JSON quando un'operazione restituisce un tipo diverso da Message. Tuttavia, quando si utilizza Message come tipo restituito, lo sviluppatore dispone del controllo completo sulla modalità di formattazione del contenuto del messaggio.

Nell'esempio vengono utilizzati i metodi CreateXmlResponse, CreateJsonResponse e CreateAtom10Response per serializzare l'elenco di stringhe rispettivamente in messaggi XML, JSON e ATOM. Per il formato di risposta jpeg, viene utilizzato il metodo CreateStreamResponse e l'immagine viene salvata nel flusso. Per la risposta XHTML, viene utilizzato il metodo CreateTextResponse insieme a un modello T4 pre-elaborato costituito da un file con estensione tt e da un file con estensione cs generato automaticamente. Il file con estensione tt consente a uno sviluppatore di scrivere una risposta in un form del modello contenente variabili e strutture di controllo. Per ulteriori informazioni su T4, vedere Generazione di elementi mediante i modelli di testo.

L'esempio è costituito da un servizio indipendente e da un client in esecuzione in un'applicazione console. Quando l'applicazione console è in esecuzione, il client invia richieste al servizio e scrive nella finestra della console le informazioni pertinenti incluse nelle risposte.

Per eseguire questo esempio

  1. Aprire la soluzione per l'esempio relativo alla selezione avanzata del formato. Per garantire l'esecuzione corretta dell'esempio, è necessario che l'avvio di Visual Studio 2010 venga eseguito come amministratore. A tale scopo, fare clic con il pulsante destro del mouse sull'icona Visual Studio 2010 e scegliere Esegui come amministratore dal menu di scelta rapida.

  2. Premere F6 per compilare la soluzione, quindi premere Ctrl+F5 per eseguire il progetto AdvancedFormatSelection dell'applicazione console senza eseguirne il debug. Verrà visualizzata la finestra della console in cui saranno disponibili gli URI del servizio in esecuzione e della pagina della Guida HTML per il servizio in esecuzione.

  3. Durante l'esecuzione dell'esempio, il client invia richieste al servizio e scrive le risposte nella finestra della console. Si notino i formati diversi delle risposte, ovvero XML, JSON, Atom e XHTML.

  4. Verrà quindi richiesto di passare a un URI tramite il quale è possibile richiedere la risposta in un formato jpeg. Aprire un browser e passare all'URI specificato.

  5. Premere un tasto qualsiasi per terminare l'esempio.

Ee662965.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, vedere la pagina relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WCF\Basic\Web\AdvancedFormatSelection