comportamiento extraño llamando al método de wcf desde powershell usando new-webproxyservice

Puede alguien explicarme esto:

reé un servicio wcf realmente simple para prueba
Consumir servicio de powershell usando New-WebServiceProxy Encontré este comportamiento extraño:

if en el servicio wcf Tengo este tipo de contrato que devuelve unaint:

[OperationContract]
int GetDictionaryLength();

llamar a este método en powershell da un error y la definición del método no es lo que esperaría ver

PS C:\ps> $a | Get-Member getdictionarylength | fl *

TypeName: Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1_022s_pwdservice_svc_wsdl.PWDService

Name: GetDictionaryLength

MemberType: Método

Definición : System.Void GetDictionaryLength (System.Int32 &, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 GetDictionaryLengthResult, System.Boolean &, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934

cambiando el contrato de esta manera:

[OperationContract]
string GetDictionaryLength();

hace un gran trabajo llamado en powershell.

¿Por qué esto

WCF está en .net 4.0 Powershell es V2

Respuestas a la pregunta(2)

Su respuesta a la pregunta