通过Web服务将参数传递为null

时间:2013-10-26 11:17:06

标签: c# asp.net web-services

我是.net webservices的新手,并且遇到了一些问题。 我有一些wsdl文件,其中包含使用 wsdl.exe 的此webservice和generete代理类的规范。然后通过使用此类发送一些数据,这是一个问题。 代理类有一些不可为空的类型,如 DateTime 。 所以我做不到这样的事情:

someDateField = null;

所以我只是设置

someDateFieldSpecified = false;

这不像我想的那样有效。我不希望通过一些魔法机制将这些字段通过网络发送,并将其添加到我的程序产品xml中。

...
<someDateField>1/1/0001 12:00:00 AM</someDateField>
...

有没有办法不发送这个字段?我读了一些关于创建自定义序列化程序的内容,但在我的知识水平上对我来说是非常困难的任务。

2 个答案:

答案 0 :(得分:0)

DateTime不是可以为空的类型,因此无法接受null作为值。但是,DateTime?Nullable<DateTime>可以接受空值并应解决您的问题。

someDateFieldSpecified proprerty设置为false只会忽略您请求中的someDateField字段,但服务器需要确定如何处理该字段。

答案 1 :(得分:0)

将someDateField Specified属性设置为false将简单地省略请求中的someDateField字段,但是由服务器决定如何处理该字段。