2010-08-17 16 views
5

Duplicar posibles:
How to serialize Dictionary<string, string> through WCF?pasar Diccionario de servicio WCF

cómo pasar un diccionario en un método de WCF ...
que esté haciendo esto

public void SendData(Dictionary<string, string > data) 
{ 
    foreach (KeyValuePair<string, string> item in data) 
    { 
     Console.WriteLine("{0} : {1}", item.Key, item.Value); 
    } 
} 

Cuando accedo a él como 192.XXX//Akhil/service.svc/SendData?data= {}
aquí ¿Qué? ¿Cómo debo pasar los argumentos en los datos? Algún ejemplo, por favor.

Respuesta

5

generar su proxy (Say, "TestProxy") y luego hacer:

TestProxy.YourServiceClient client = new TestProxy.YourServiceClient(); 

Dictionary<string, string> testDict = new Dictionary<string, string>(); 

testDict.Add("test", "test1"); 

client.SendData(testDict); 

WCF serializará el diccionario sin ningún problema. El problema aquí es que está intentando acceder a su servicio WCF como si lo hubiera expuesto como un servicio REST a través de una solicitud HTTP Get. Estoy bastante seguro en base a su pregunta, usted no está exponiendo esto como un servicio REST. Si desea poder obtener Solicitudes, entonces google .Net WCF REST.

* Nota: es posible que también desee examinar el patrón Solicitud/Respuesta SOA, ya que va a ahorrar un montón de problemas en el futuro.

Actualización:

Éstos son algunos enlaces que pueden apuntar en la dirección correcta, es probable que quieren exponer a su servicio WCF como un punto final JSON.

JSON/REST Link

Buscar en este diccionario LINK para obtener algunos detalles sobre las alternativas y trampas en WCF JSON.

Espero que te ayuden. Nunca he hecho una aplicación para Iphone, así que no tengo ningún código fuente para darle.

+0

Hola CKH Gracias por su ayuda ... Quiero enviar datos de la publicación de Iphone. Tengo que enviar un diccionario (pares K-V) con 8 pares k-v. Tengo que recibir este diccionario en WCF ... solo ayúdenme cómo lo manejaré. realmente lo siento si esto es algo estúpido ... por favor ayúdenme con algún código si es posible. – user372079

+0

No, no es estúpido en absoluto. He actualizado mi publicación anterior con algunos enlaces para ayudarte. – CkH