c# - 如何忽略使用 xsd 或 xsd2code 指定后缀的字段和属性的生成

标签 c# xsd visual-studio-extensions xsd2code

我有一个使用 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/

相关文章:

JAXB 架构到 Java 不同的 XmlRootElement 名称和类名称

visual-studio - 如何调试 Visual Studio 扩展

c# - 对话框不适用于 SAP Business One 附加组件

c# - 如何注册对数据库的权限并授予 asp.net 样板中的角色

c# - 全局静态类和方法不好吗?

visual-studio - Visual Studio 状态栏中的动画图像

c# - 在 Visual Studio 扩展中打开标准对话框

c# - 从多个接口(interface)继承相同的方法

xml - DTD 是否被弃用?

java - 如何让 JAXB 解析 BigInteger 的科学记数法?