Dies ist ein Beispiel dafür, was Xsd.exe erzeugt (auch Xsd2Code, aber unter Verwendung von generischen List<>).
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="xxxxxxxxxxxxxxxx")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="xxxxxxxxxxxxxxxx", IsNullable=false)]
public partial class ItemQuantity
{
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Units;
/// <remarks/>
[System.Xml.Serialization.XmlAnyAttributeAttribute()]
public System.Xml.XmlAttribute[] AnyAttr;
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()] // <-- this is the bug
public double[] Text; // <-- this is the bug corresponding to a <xs:list itemType=xs:double/> in the schema
}
Ich habe es mit einem sehr großen Schema zu tun, das mehrere Male xs:list für verschiedene Primitive verwendet...
Und alle diese Text-Eigenschaften, die nicht string[] (sondern double[] decimal[]) sind, führen alle zu dieser Ausnahme zur Laufzeit bei Verwendung mit XmlSerializer (Ich übersetze es ins Englische) Das Mitglied Text kann nicht mit dem Attribut XmlText kodiert werden. Sie können das Attribut XmlText mit Primitiven, Enums, String-Arrays oder XmlNode-Arrays verwenden.
Was raten Sie mir?