X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.XML%2FSystem.Xml.Serialization%2FXmlTypeMapMemberElement.cs;h=30b0614e97c524b9a1ea683f4e01d2306293e75d;hb=213bc960d483a4de27f363c5c78d57b8da0b8182;hp=e486f4c54e0a4a093892ef4d54719c1a692c2d00;hpb=bd9f9ee7cb81823608edc76ef9d0b6416783fe71;p=mono.git diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapMemberElement.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapMemberElement.cs index e486f4c54e0..30b0614e97c 100644 --- a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapMemberElement.cs +++ b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapMemberElement.cs @@ -42,6 +42,7 @@ namespace System.Xml.Serialization XmlTypeMapElementInfoList _elementInfo; string _choiceMember; bool _isTextCollector; + TypeData _choiceTypeData; public XmlTypeMapMemberElement() { @@ -63,6 +64,12 @@ namespace System.Xml.Serialization set { _choiceMember = value; } } + public TypeData ChoiceTypeData + { + get { return _choiceTypeData; } + set { _choiceTypeData = value; } + } + public XmlTypeMapElementInfo FindElement (object ob, object memberValue) { if (_elementInfo.Count == 1) @@ -77,9 +84,8 @@ namespace System.Xml.Serialization { if (memberValue == null) return (XmlTypeMapElementInfo) _elementInfo[0]; - Type type = memberValue.GetType(); foreach (XmlTypeMapElementInfo elem in _elementInfo) - if (elem.TypeData.Type == type) return elem; + if (elem.TypeData.Type.IsInstanceOfType (memberValue)) return elem; } return null; }