Procedura: specificare un'associazione al servizio in codice

In questo esempio viene definito un contratto ICalculator per un servizio di calcolatrice. Il servizio viene implementato nella classe CalculatorService e il relativo endpoint viene quindi definito in codice, dove si specifica che il servizio deve utilizzare la classe BasicHttpBinding.

La procedura in genere consigliata consiste nello specificare le informazioni su associazione e indirizzo nella configurazione in modo dichiarativo anziché in modo imperativo nel codice. In genere definire endpoint nel codice non è pratico in quanto le associazioni e gli indirizzi di un servizio distribuito sono solitamente diversi da quelli utilizzati durante lo sviluppo del servizio. Più in generale, se le informazioni su associazione e indirizzo non vengono incluse nel codice, tali dati possono essere modificati senza dover compilare o distribuire nuovamente l'applicazione.

Per una descrizione di come configurare questo servizio utilizzando elementi di configurazione anziché tramite codice, vedere Procedura: specificare un'associazione al servizio in configurazione.

Per specificare in codice l'utilizzo dell'associazione BasicHttpBinding per il servizio

  1. Definire un contratto di servizio per il tipo di servizio.

  2. Implementare il contratto di servizio in una classe di servizio.

  3. Nell'applicazione host, creare l'indirizzo di base del servizio e l'associazione da utilizzare con il servizio.

  4. Creare l'host del servizio, aggiungere l'endpoint e quindi aprire l'host.

Per modificare i valori predefiniti delle proprietà dell'associazione

  1. Per modificare uno dei valori di proprietà predefiniti della classe BasicHttpBinding, impostare il valore di proprietà dell'associazione sul nuovo valore prima di creare l'host. Ad esempio, per modificare i valori di timeout di apertura e chiusura predefiniti da 1 minuto a 2 minuti, utilizzare il codice seguente:

Vedere anche

Concetti

Utilizzo di associazioni per configurare servizi e client
Specifica di un indirizzo endpoint