如果我将.NET 1.1客户端的Web引用添加到WCF服务,则客户端生成的代理方法包含一个额外的参数,以每个服务方法参数的后缀'Specified'结尾,例如
[OperationContract]
string HelloWorld(string foo, int bar);
Run Code Online (Sandbox Code Playgroud)
结果是:
Service1.HelloWorld(string foo, bool fooSpecified, int bar, bool barSpecified);
Run Code Online (Sandbox Code Playgroud)
我的服务参数不是可选的,所以客户端的这些额外参数是什么,我怎样才能摆脱它们?
小智 6
这是由于WCF和ASMX Web服务中使用的序列化机制不同.要避免额外的参数,必须在ServiceContract上指定XmlSerializerFormat属性.
添加阅读:http: //msmvps.com/blogs/windsor/archive/2008/05/17/calling-wcf-services-from-net-1-1.aspx