gpt4 book ai didi

c# - XSD 工具在生成 C# 代码时将 "Specified"附加到某些属性/字段

转载 作者:可可西里 更新时间:2023-11-01 08:43:41 24 4
gpt4 key购买 nike

我无法真正解释 XSD 生成器的奇怪行为。我有一个像这样的 XSD:

<xs:complexType name="StageSequenceElement" mixed="false">
<xs:complexContent>
<xs:extension base="CoreObject">
<xs:sequence>
<xs:element name="Description" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Some Doc</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StageRef" type="ObjectReference">
<xs:annotation>
<xs:documentation>...</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MinDuration_100ms" type="xs:int" nillable="true" minOccurs="0">
<xs:annotation>
<xs:documentation>...</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MaxDuration_100ms" type="xs:int" nillable="true">
<xs:annotation>
<xs:documentation>...</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StageOnDemand" type="xs:boolean" nillable="true" minOccurs="0">
<xs:annotation>
<xs:documentation>...</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

它派生自 CoreObject:

<xs:complexType name="CoreObject">
<xs:sequence>
<xs:element name="No" type="xs:int">
<xs:annotation>
<xs:documentation>...</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>

这只是 XSD 的一小部分,还有很多更复杂的类型。

所以当我生成类似于 this 的类时,我得到一个生成的类,它有两个属性(除了我期望的 5 个属性):

public bool MinDuration_100msSpecified

public bool StageOnDemandSpecified

因此“原始”属性被附加了“Specified”,类型现在是 bool。谁能解释为什么会这样?

最佳答案

bool 属性表示相关属性应该被序列化。

例如

如果 bool MinDuration_100msSpecified 设置为 false,并且您将 MinDuration_100ms 设置为 300,当你使用XmlSerializer序列化对象时,MinDuration_100ms属性不会被序列化。

此功能可以将序列化的xml文件保存到最小。

关于c# - XSD 工具在生成 C# 代码时将 "Specified"附加到某些属性/字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12138439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com