2010-04-15 17 views

risposta

19

Poiché si tratta di semantica del compilatore, direi di no. Tuttavia, ti aspetteresti che funzionino nell'unico modo seguente.

Sul lato codice di servizio tutto il codice accetta i parametri predefiniti.

Sul lato client, noto che gli strumenti "Aggiungi riferimento servizio" su VS2010 non prendono i valori predefiniti e li aggiungono al proxy generato. Quindi dovresti generare il tuo proxy.

In questo modo il codice client può utilizzare i valori predefiniti se il valore predefinito è specificato nell'implementazione del contratto lato client.

Sarebbe lo stesso vale per i parametri denominati.

Tutto sommato sì, ma il materiale non viene trasferito su WCF. Tutto ciò che accade è che il proxy client dovrà inviare nella fabbrica del canale come parametro appropriato.

+2

Il motivo alla base di ciò è che né WSDL, né MEX sanno nulla delle funzionalità del linguaggio di programmazione C#. Non hanno modo di descrivere i parametri opzionali. –

30

WSDL non può descrivere parametri opzionali, quindi la risposta è "no".

+2

È spiacevole che [OperationContract] converta silenziosamente parametri facoltativi nei parametri richiesti :( – epalm

+1

@epalm: non converte nulla. Ignora solo cose che non sono rilevanti –

+0

Chiarimento: quando ospita un servizio WCF e genera un proxy tramite Metadata Exchange, i metodi nel Reference.cs generato hanno parametri richiesti, anche se i metodi nel servizio contengono parametri facoltativi – epalm

Problemi correlati