0

XML をデシリアライズする必要があります。使用可能なタグを制御する XSD があります。XML に不規則なタグが含まれている場合、XmlSerializer はエラーを表示せず、代わりに不規則なタグをスキップします。

実行時エラーを強制するにはどうすればよいですか?

これが私のクラスの一部です:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://tempuri.org/BXTestScript.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/BXTestScript.xsd", IsNullable=false)]

public partial class BXTestScript {

    [System.Xml.Serialization.XmlElementAttribute("ActivateMenu", typeof(BXTestScriptActivateMenu))]
    [System.Xml.Serialization.XmlElementAttribute("BreakPoint", typeof(BXTestScriptBreakPoint))]
    ...     
    public static BXTestScript ReadXml(string path) {
        System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(BXTestScript));
        using (System.IO.StreamReader sr = new System.IO.StreamReader(path))
            BXTestScript ts = (BXTestScript)ser.Deserialize(sr);
        return ts;
    }
    ...
}

XML が有効で、スキーマの要素のみが含まれている場合、すべてのプログラムは正常に動作します。

4

1 に答える 1