XSD.exe 自动在关联属性的 setter 中设置生成的指定字段

Posted

技术标签:

【中文标题】XSD.exe 自动在关联属性的 setter 中设置生成的指定字段【英文标题】:XSD.exe automatically set generated specified field in associated property's setter 【发布时间】:2016-04-03 23:30:05 【问题描述】:

有没有办法让 XSD.exe 在关联属性的 setter 中自动设置生成的 setter 字段?

例如,采用以下CustomersOrders.xsd 架构。如果使用xsd CustomersOrders.xsd /c /n:mynamespace 命令生成 C# 类文件,则生成的类的一部分如下:

 /// <remarks/>
 [System.Xml.Serialization.XmlAttributeAttribute()]
 public System.DateTime ShippedDate 
     get 
         return this.shippedDateField;
     
     set 
         this.shippedDateField = value;
     
 

 /// <remarks/>
 [System.Xml.Serialization.XmlIgnoreAttribute()]
 public bool ShippedDateSpecified 
     get 
         return this.shippedDateFieldSpecified;
     
     set 
         this.shippedDateFieldSpecified = value;
     
 

我想要的是以下

 /// <remarks/>
 [System.Xml.Serialization.XmlAttributeAttribute()]
 public System.DateTime ShippedDate 
     get 
         return this.shippedDateField;
     
     set 
         this.shippedDateField = value;
         this.shippedDateFieldSpecified = true;
     
 

(注意在关联属性的设置器中添加了this.shippedDateFieldSpecified = true;

我在帮助文档中没有看到任何内容。谢谢!

【问题讨论】:

您希望 XSD 如何自动知道 shippingDateFieldSpecified 与 shippingDateField 有任何关系? 因为指定的字段是由 XSD 生成的,而不是作为方便的东西实际上在模式中。 【参考方案1】:

完全需要相同的。有 Specified 属性,但它只会使可空道具的工作复杂化。是的,如果可空元素被更改,指定的道具应该自动设置为 true。我使用大型模式 - 不是小简单,不想总是改变它们。这个问题出在 xsd.exe 年。

【讨论】:

以上是关于XSD.exe 自动在关联属性的 setter 中设置生成的指定字段的主要内容,如果未能解决你的问题,请参考以下文章

xsd.exe 在 OFX2 架构上运行时生成重复的属性

如何使用包含冒号的属性的xsd.exe? (XML:朗)

Kotlin类与对象 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

Kotlin类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

vue的计算属性 是怎么关联某个数据

如何为 .h 中定义的属性在 .m 中为 Setter 和 Getter 自动生成 Xcode 5 代码? [复制]