如何忽略使用xsd或xsd2code指定后缀的字段和属性的生成
本文关键字:字段 后缀 属性 何忽略 xsd xsd2code | 更新日期: 2023-09-27 18:20:07
我有一个C#应用程序,它使用Json与服务器通信。
服务器团队给了我一个xsd,我用它来生成带有xsl2代码的C#类。
在执行此操作时,对于xsd中的每个字段,xsd2code在生成的C#类中创建2个字段。一个名称与xsd中的名称相同,另一个名称后缀为"指定"。
例如:下面是我的xsd 中的一个xml
<xsd:element name="depth" type="xsd:int" minOccurs="0"/>
以下是它生成的相应字段。
private int depthField;
private bool depthFieldSpecified;
public int depth {
get {
return this.depthField;
}
set {
this.depthField = value;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool depthSpecified {
get {
return this.depthFieldSpecified;
}
set {
this.depthFieldSpecified = value;
}
}
有没有办法避免字段后缀为"指定"?我需要删除它,因为当我试图将对象序列化回json字符串时,它会引起问题。即使我已经填充了属性depthField,它也不会通过查看默认为false的depthFieldSpecified布尔值来序列化它。
如果有人能给我指明正确的方向,我会很高兴。提前感谢。
据我所知,你做不到。当再次序列化为XML时,Specified
属性对XmlSerializer
有非常特殊的用途。
我自己也尝试过在Xsd2Code生成器中"修复"这个问题,但到目前为止没有成功。不过,您可以通过从CodePlex下载Xsd2Code的源代码来尝试一下。