通过使用Dynamic Proxy namespace,我试图动态创建和使用WCF服务。我已经宣布了如下合同:
[OperationContract]
long GetStrings(string sinput, int n, out List<String> lstStrings);
在客户端,我收集的信息如下:
MethodInfo getStrings = proxyType.GetMethod("GetStrings");
Type strType = getStrings.GetParameters()[0].ParameterType;
Type strType1 = getStrings.GetParameters()[1].ParameterType;
Type strType2 = getStrings.GetParameters()[2].ParameterType;
类型的名称如下:
strType = "String[]&"
strType1 = "String"
strType2 = "int"
我的问题是:
提前致谢。
答案 0 :(得分:0)
在WCF中使用out-parameters不是很惯用。通常最好将两条返回的信息(长和序列)包装在一个响应类中。
但是,如果由于某种原因你确实需要out-parameters,那么我相信当bodystyle被“包裹”(或者可能是“wrapresponse”)时它会被支持,但是当它是默认的“bare”时则不支持。< / p>
我认为建议客户端代码获取List会显示出对WCF和SOAP如何工作的误解。客户端代理是通过读取服务生成的WSDL来完成的。 WSDL没有指定C#类型,它指定XML Schema类型。 XML Schema中的序列由C#数组表示,它就是这样的。如果需要C#List,则需要将原始代理包装在您自己设计的适配器类中。