2010-02-17 9 views
8

Si agrego una referencia web de un cliente .NET 1.1 a un servicio WCF, los métodos de proxy generados en el cliente contienen un parámetro adicional que termina con el sufijo 'Especificado' para cada parámetro de método de servicio, p.¿Cuáles son estos parámetros adicionales en mis métodos ASMX Proxy?

[OperationContract] 
string HelloWorld(string foo, int bar); 

resultados en:

Service1.HelloWorld(string foo, bool fooSpecified, int bar, bool barSpecified); 

Mis parámetros de servicio no son opcionales así que lo que son estos parámetros adicionales en el cliente, y cómo puedo deshacerse de ellos?

+0

Por cierto, esto no es un "cliente WCF", sino más bien es un cliente de ASMX de un servicio WCF. –

+1

Es un cliente de WCF de la misma manera que usted es un cliente bancario sin ser realmente un banco. – stovroz

Respuesta

1

.NET 1.1 Los servicios web no tienen un concepto de nulo, por lo que WCF está generando estas propiedades adicionales para usted. fooSpecified = false significa que foo es realmente nulo.

+0

foo es un _input_ al servicio, especificado en el cliente. – stovroz

-1

es probable que tenga t Osay que sus parámetros se requiere

[OperationContract] 
string HelloWorld([RequiredDataParameter] string foo, 
        [RequiredDataParameter] int bar); 
+2

Google solo tiene dos resultados para RequiredDataParameter, y uno de ellos es esta página, por lo que probablemente no. – stovroz

2

el problema es con los parámetros de un tipo de valor cuando se les permite estar ausente. .NET 1.1 no tiene forma de especificar esto sin los parámetros *specified. Deben establecerse en verdadero para indicar que se está enviando el parámetro correspondiente.

Cuestiones relacionadas