Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务引用不创建';指定的';DateTime的属性_C#_.net_Web Services_Soap_Visual Studio 2013 - Fatal编程技术网

C# 服务引用不创建';指定的';DateTime的属性

C# 服务引用不创建';指定的';DateTime的属性,c#,.net,web-services,soap,visual-studio-2013,C#,.net,Web Services,Soap,Visual Studio 2013,我已经为soapweb服务添加了一个服务引用。WSDL包含一些dateTime元素,如: <xsd:element minOccurs="0" name="plannedStartDate" type="xsd:dateTime"/> <xsd:element minOccurs="0" name="plannedEndDate" type="xsd:dateTime"/> 等。VS2013生成了一个具有(不可为null)DateTime类型属性的类,但未添加指定的

我已经为soapweb服务添加了一个服务引用。WSDL包含一些dateTime元素,如:

<xsd:element minOccurs="0" name="plannedStartDate" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="plannedEndDate" type="xsd:dateTime"/>

等。VS2013生成了一个具有(不可为null)DateTime类型属性的类,但未添加指定的plannedStartDateSpecified等属性。因此,我没有选择跳过发送它们中的任何一个。如果我将生成的代码修改为可空DateTime?属性,它在这些字段中发送null,而远程系统按照我的预期将值置空。我需要完全跳过发送输入元素

创建Web引用确实会产生“指定”属性,这允许我跳过发送可选元素,一切都很好


有什么想法吗?我希望使用服务引用在使用服务的库中保持所有内容的一致性。

我将拭目以待,看看是否有人有更聪明的答案,但我将svcutil.exe与XmlSerializer结合使用,并包装如下

svcutil /serializer:XmlSerializer /namespace:*,<desired_namespace_for_generated_class> /wrapped <path_to_WSDL>
svcutil/serializer:XmlSerializer/namespace:*,/wrapped
为方便起见,在app.config中,我像往常一样在Visual Studio中为相同的WSDL添加了一个常规服务引用,然后将VS生成的Reference.cs的内容替换为从svcutil.exe生成的文件的内容。现在我有了*指定的字段,一切都按照我希望的方式运行


是的,编辑生成的代码不太合乎礼仪,但这是一个已发布的、版本化的web服务。因此,我预计不必更新服务引用(从而将其弄糟)。

另一个解决方案可以在这里找到:


(将
true
添加到生成的Reference.svcmap文件中的元素
ClientOptions

作为替换生成内容的替代方法,您可以通过将svcmap文件的“”元素编辑为“XmlSerializer”,将服务引用切换到XmlSerializer。一般来说,请尝试用网站内容回答,而不仅仅是一个链接,以防该链接在将来失效。