Pergunta

Eu preciso aceitar dados do formulário para um serviço baseado em WCF. Aqui está a interface:

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

Aqui está a implementação (amostra - sem tratamento de erros e outras salvaguardas):

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

Assumindo WCF, existe uma maneira melhor de fazer isso além de analisar o fluxo de entrada?

Foi útil?

Solução

Lembro-me de falar com você sobre isso em DevLink.

Uma vez que você tem que suporte campos de formulário a mecânica de obtenção desses (o que você está fazendo atualmente) não mudam.

Algo que pode ser útil, especialmente se você quiser reutilizar o seu serviço para novas aplicações que não exigem os campos do formulário é criar um canal que desconstrói o seu fluxo e reposiciona a XML / JSON / SOAP / O que quer e ter seus clientes formulário comunicar com o serviço através de que, enquanto os clientes que não usam formulários podem usar outra pilha de canal. Apenas uma idéia ...

Espero que ajude. Se precisar de ajuda com a sensação de canal livre para me informar.

Outras dicas

Você pode serializar os campos do formulário com jQuery e empacotá-lo como o pedido JSON para o serviço WCF.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top