Frage

Ich muss Formulardaten an einen WCF-basierten Dienst akzeptieren. Hier ist die Schnittstelle:

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

Hier ist die Implementierung (Probe - keine Fehlerbehandlung und andere Schutzmaßnahmen):

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;
}

Unter der Annahme, WCF, gibt es einen besseren Weg, dies zu erreichen, neben der eingehenden Stream-Parsing?

War es hilfreich?

Lösung

Ich erinnere mich darüber bei DevLink zu Ihnen zu sprechen.

Da müssen Sie Formularfelder, die Mechanik des Erhaltens diejenigen unterstützen (was Sie gerade tun) ändern sich nicht.

Etwas, das hilfreich sein könnte, vor allem, wenn Sie Ihren Dienst für neue Anwendungen wiederverwendet werden sollen, dass die Formularfelder nicht erforderlich ist, einen Kanal zu schaffen, die Ihren Strom dekonstruiert und neu verpackt es in XML / JSON / SOAP / was auch immer und haben Ihre Form Clients kommunizieren mit dem Service durch, dass, während Kunden, die einen anderen Kanalstapel verwenden Sie keine Formulare verwenden können. Nur eine Idee ...

Ich hoffe, das hilft. Wenn Sie mit dem Kanal Hilfe benötigen fühlen Sie sich frei, mich zu informieren.

Andere Tipps

Sie können Ihre Formularfelder mit jquery und verpacken es als json Anfrage Wcf-Dienst.

serialisiert
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top