我需要接受表单数据到基于WCF的服务。这是界面:

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

这是实现(示例 - 没有错误处理和其他安全措施):

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

假设WCF,除了解析传入流之外,还有更好的方法吗?

有帮助吗?

解决方案

我记得在DevLink上和你谈过这件事。

由于您必须支持表单字段,因此获取这些字段(您当前正在执行的操作)的机制不会发生变化。

可能有用的东西,特别是如果你想为不需要表单字段的新应用程序重用你的服务,那就是创建一个解构你的流并将它重新打包成XML / JSON / SOAP / Whatever和have您的表单客户端与服务进行通信,而不使用表单的客户端可以使用另一个通道堆栈。只是一个想法...

希望有所帮助。如果您需要有关频道的帮助,请随时告诉我。

其他提示

您可以使用jquery序列化表单字段,并将其作为json请求打包到wcf服务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top