Domanda

Devo accettare i dati del modulo per un servizio basato su WCF. Ecco l'interfaccia:

[OperationContract]
[WebInvoke(UriTemplate = "lead/inff",
    BodyStyle = WebMessageBodyStyle.WrappedRequest)]
int Inff(Stream input); 

Ecco l'implementazione (esempio: nessuna gestione degli errori e altre garanzie):

public int Inff(Stream input)
{

    StreamReader sr = new StreamReader(input);
    string s = sr.ReadToEnd();
    sr.Dispose();

    NameValueCollection qs = HttpUtility.ParseQueryString(s);
    Debug.WriteLine(qs["field1"]);
    Debug.WriteLine(qs["field2"]);

    return 0;
}

Supponendo WCF, esiste un modo migliore per ottenere questo risultato oltre all'analisi del flusso in entrata?

È stato utile?

Soluzione

Ricordo di averti parlato di questo in DevLink.

Dato che devi supportare i campi modulo, i meccanismi per ottenerli (cosa stai facendo attualmente) non cambiano.

Qualcosa che potrebbe essere utile, specialmente se si desidera riutilizzare il servizio per nuove applicazioni che non richiedono i campi del modulo è creare un canale che decostruisce il flusso e lo riconfeziona in XML / JSON / SOAP / Qualunque cosa abbia i client dei moduli comunicano con il servizio tramite questo mentre i client che non utilizzano i moduli possono utilizzare un altro stack di canali. Solo un'idea ...

Spero che sia d'aiuto. Se hai bisogno di aiuto con il canale, faccelo sapere.

Altri suggerimenti

Puoi serializzare i tuoi campi modulo con jquery e impacchettarlo come richiesta json al servizio wcf.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top