我有一个使用 Json 与服务器通信的 C# 应用程序。
服务器团队给了我一个 xsd,我用它来通过 xsd2code 生成 C# 类。
执行此操作时,对于 xsd 中的每个字段,xsd2code 在生成的 C# 类中创建 2 个字段。一个与 xsd 中的名称相同,另一个名称后缀为“Specified”。
例如:这是我的 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 字符串时,它会导致问题。即使我已经填充了属性 heightField,它也不会通过查看 heightFieldSpecified bool 值来序列化它,该 bool 值默认为 false。
如果有人能指出我正确的方向,我会很高兴。 提前致谢。
最佳答案
据我所知你不能。 Specified
属性有 a very specific use再次序列化为 XML 时使用 XmlSerializer
。
我自己尝试在 Xsd2Code 生成器中“修复”这个问题,但到目前为止还没有成功。您可以通过从 CodePlex 的 Xsd2Code 下载源代码来尝试一下。
关于c# - 如何忽略使用 xsd 或 xsd2code 指定后缀的字段和属性的生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601308/