Imported Upstream version 4.3.2.467

Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
Xamarin Public Jenkins
2016-02-22 11:00:01 -05:00
parent f302175246
commit f3e3aab35a
4097 changed files with 122406 additions and 82300 deletions

View File

@@ -646,8 +646,15 @@ namespace System.Xml.Serialization
{
if (memberValue == null) return null;
Type type = memberValue.GetType();
foreach (XmlTypeMapElementInfo elem in _itemInfo)
if (elem.TypeData.Type == type) return elem;
XmlTypeMapElementInfo bestMatch = null;
foreach (XmlTypeMapElementInfo elem in _itemInfo) {
if (elem.TypeData.Type == type)
return elem;
if (elem.TypeData.Type.IsAssignableFrom (type) &&
(bestMatch == null || elem.TypeData.Type.IsAssignableFrom (bestMatch.TypeData.Type)))
bestMatch = elem;
}
return bestMatch;
}
return null;
}