[XmlElement ("Extra", Order=1)]
public string[] Extra;
}
+
+ public class SimpleObjectA
+ {
+ [XmlAttribute]
+ public string Text
+ {
+ get; set;
+ }
+
+ public static implicit operator SimpleObjectA (SimpleObjectB o)
+ {
+ return new SimpleObjectA { Text = o.Text };
+ }
+
+ public static implicit operator SimpleObjectB (SimpleObjectA o)
+ {
+ return new SimpleObjectB { Text = o.Text };
+ }
+ }
+
+ public class SimpleObjectB
+ {
+ [XmlAttribute]
+ public string Text
+ {
+ get; set;
+ }
+ }
+
+ public class ObjectWithElementRequiringImplicitCast
+ {
+ public ObjectWithElementRequiringImplicitCast () { }
+ public ObjectWithElementRequiringImplicitCast (string text)
+ {
+ Object = new SimpleObjectB { Text = text };
+ }
+
+ [XmlElement(Type = typeof (SimpleObjectA))]
+ public SimpleObjectB Object
+ {
+ get; set;
+ }
+ }
+
+ public class ObjectWithNullableArrayItems
+ {
+ [XmlArrayItem ("Element", IsNullable = true)]
+ public List<SimpleClass> Elements;
+ }
+
+ public class ObjectWithNonNullableArrayItems
+ {
+ [XmlArrayItem ("Element", IsNullable = false)]
+ public List<SimpleClass> Elements;
+ }
+
+ public class ObjectWithNotSpecifiedNullableArrayItems
+ {
+ [XmlArrayItem ("Element")]
+ public List<SimpleClass> Elements;
+ }
}