Question

Je dois accepter les données de formulaire pour un service basé sur WCF. Voici l'interface:

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

Voici l'implémentation (exemple - pas de traitement des erreurs et autres protections):

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

En supposant que WCF, existe-t-il un meilleur moyen d’y parvenir en plus de l’analyse du flux entrant?

Était-ce utile?

La solution

Je me souviens de vous avoir parlé de cela à DevLink.

Etant donné que vous devez prendre en charge les champs de formulaire, la mécanique pour obtenir ceux-ci (ce que vous faites actuellement) ne change pas.

Ce qui pourrait être utile, en particulier si vous souhaitez réutiliser votre service pour les nouvelles applications ne nécessitant pas les champs de formulaire, est de créer un canal qui déconstruit votre flux et le reconditionne en XML / JSON / SOAP / Whatever et que vous ayez vos clients de formulaire communiquent avec le service par ce biais, tandis que les clients qui n'utilisent pas de formulaire peuvent utiliser une autre pile de canaux. Juste une idée ...

J'espère que ça aide. Si vous avez besoin d'aide avec la chaîne, n'hésitez pas à me le faire savoir.

Autres conseils

Vous pouvez sérialiser vos champs de formulaire avec jquery et le conditionner en tant que demande json au service wcf.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top