【发布时间】:2021-04-06 03:35:31
【问题描述】:
给定一个包含简单日期时间字段的 WSDL 定义,定义如下:
<xs:sequence>
<xs:element minOccurs="0" name="endDate" type="xs:dateTime"/>
</xs:sequence>
使用内置的tool添加服务引用
生成的代码有一个未在 WSDL 中定义的新“指定”字段
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")]
.. removed fluff..
public partial class Foo {
private System.DateTime endDateField; // Normal field
private bool endDateFieldSpecified; // New Unknow field
当旧的生成代码是这样的:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
.. removed fluff..
public partial class Foo {
[System.Runtime.Serialization.OptionalFieldAttribute()]
private System.DateTime endDateField;
如果新的“指定”字段未设置为 true。该属性未序列化。
Soap Trace 中缺少该信息。
此问题与 VS 版本无关,也与更新无关。
文件头显示两个生成的代码相同的版本:
运行时版本:4.0.30319.42000
【问题讨论】:
标签: c# wcf soap-client