使用xsd.exe生成的类反序列化可空值

时间:2015-09-16 13:59:59

标签: c# visual-studio xsd xml-deserialization xsd.exe

Nullable value with xsd.exe generated class回答为什么生成的类具有*指定的字段和属性,以及它如何用于序列化 XML文件,但是如何在反序列化?

我有一个生成的类,定义如下:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.33440")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.caiso.com/soa/2006-06-13/StandardOutput.xsd")]
public partial class EventLog {

    private System.DateTime creationTimeField;

    private bool creationTimeFieldSpecified;

    /// <remarks/>
    public System.DateTime creationTime {
        get {
            return this.creationTimeField;
        }
        set {
            this.creationTimeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool creationTimeSpecified {
        get {
            return this.creationTimeFieldSpecified;
        }
        set {
            this.creationTimeFieldSpecified = value;
        }
    }
}

您可以看到this.creationTimeFieldSpecified;的设置工具中未设置creationTime。那么,如何使用xsd.exe生成一个类,以便我可以反序列化XML,并检查是否提供了值?

我知道其他工具:xsd2code,wscfblue,XmlSchemaClassGenerator等;但随着Visual Studio的每次发布或更新,可能会发生更改,或者不支持加载项。我想知道是否有一种生成类的方法,以便反序列化可以利用这些属性。

Dislaimer

我无权更改xsd,它们可以随时更新,因为任何需要重新生成类的原因,结果类可能长达数千行,不需要手动干预

0 个答案:

没有答案