2010-02-17 43 views
8

如果我将.NET 1.1客户端的Web引用添加到WCF服务,则客户端生成的代理方法将包含一个以每个服务方法参数的后缀“Specified”结尾的额外参数,例如,我的ASMX代理方法中的这些额外参数是什么?

[OperationContract] 
string HelloWorld(string foo, int bar); 

结果:

Service1.HelloWorld(string foo, bool fooSpecified, int bar, bool barSpecified); 

我的服务参数不是可选的,所以在客户端什么是这些额外的参数,我怎么能摆脱他们?

+0

顺便说一句,这不是一个“WCF客户端”,而是一个WCF服务的ASMX客户端。 –

+1

这是一个WCF客户端,就像您是银行客户一样,而不是真正的银行。 – stovroz

回答

1

.NET 1.1 Web服务没有null的概念,因此WCF正在为您生成这些额外的属性。 fooSpecified = false意味着foo真的是空的。

+0

foo是_input_服务,在客户端指定。 – stovroz

-1

你可能需要牛逼osay你的参数需要

[OperationContract] 
string HelloWorld([RequiredDataParameter] string foo, 
        [RequiredDataParameter] int bar); 
+2

谷歌只有RequiredDataParameter的两个结果,其中一个是这个页面,所以可能不是。 – stovroz

2

问题是值类型的参数,当他们被允许缺席。没有*specified参数,.NET 1.1无法指定它。它们需要设置为true以指示正在发送相应的参数。

相关问题