2010-08-17 15 views
5

Eventuali duplicati:
How to serialize Dictionary<string, string> through WCF?passando dizionario in servizio WCF

come passare un dizionario in un metodo in WCF ...
sto facendo questo

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

Quando accedo ad esso come 192.XXX//Akhil/service.svc/SendData?data= {}
qui Cosa/Come devo passare argomenti nei dati ... qualche esempio per favore.

risposta

5

Generare il proxy (Say, "TestProxy") allora fare:

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

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

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

client.SendData(testDict); 

WCF serializzare il dizionario senza alcun problema. Il problema qui è che si sta tentando di accedere al servizio WCF come se lo si fosse esposto come servizio REST tramite una richiesta HTTP Get. Sono piuttosto sicuro in base alla tua domanda, non lo esponi come servizio REST. Se vuoi essere in grado di fare ottenere richieste, quindi google. Net WCF REST.

* Nota: si potrebbe anche voler esaminare il modello di richiesta/risposta SOA, che consentirà di risparmiare un sacco di problemi lungo la strada.

Aggiornamento:

Ecco alcuni link che potrebbero puntare nella giusta direzione, probabilmente si vorrà esporre il vostro servizio WCF come endpoint JSON.

JSON/REST Link

Cerca Dizionario in questo LINK per ottenere alcuni dettagli sulle alternative e trucchi in WCF JSON.

Spero che questo aiuto. Non ho mai fatto un'app Iphone quindi non ho alcun codice sorgente da darti.

+0

Ciao CKH Grazie per l'aiuto ... Desidero inviare i dati dei post da Iphone. Devo inviare un dizionario (coppie K-V) con 8 coppie k-v. Devo ricevere questo dizionario in WCF ... per favore basta aiutarmi come lo gestirà. Mi dispiace davvero se questo è qualcosa di stupido ... per favore aiutami con un po 'di codice se possibile. – user372079

+0

No, non è affatto stupido. Ho aggiornato il mio post in alto con alcuni link per aiutarti. – CkH