1

我有一个使用 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 字符串时会导致问题。即使我已经填充了属性 depthField,它也不会通过查看 depthFieldSpecified 布尔值来序列化它,默认情况下它是错误的。

如果有人能指出我正确的方向,我会很高兴。提前致谢。

4

1 回答 1

2

据我所知,你不能。当再次序列化为 XML 时,这些Specified属性具有非常特殊的用途。XmlSerializer

我自己尝试在 Xsd2Code 生成器中自己“修复”这个问题,但到目前为止还没有运气。您可以通过从 CodePlex 下载 Xsd2Code 的源代码来尝试一下。

于 2014-09-01T08:05:38.440 回答