You've already forked linux-packaging-mono
Imported Upstream version 6.0.0.172
Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
This commit is contained in:
parent
8016999e4d
commit
64ac736ec5
@ -204,11 +204,9 @@ namespace System.Xml.Serialization
|
||||
{
|
||||
if (isNullable && ReadNull()) return null;
|
||||
|
||||
if (checkType)
|
||||
{
|
||||
System.Xml.XmlQualifiedName t = GetXsiType();
|
||||
if (t != null)
|
||||
{
|
||||
if (checkType) {
|
||||
System.Xml.XmlQualifiedName t = GetXsiType();
|
||||
if (t != null) {
|
||||
XmlTypeMapping realMap = typeMap.GetRealElementMap (t.Name, t.Namespace);
|
||||
if (realMap == null) {
|
||||
if (typeMap.TypeData.Type == typeof(object))
|
||||
@ -221,7 +219,12 @@ namespace System.Xml.Serialization
|
||||
}
|
||||
else if (typeMap.TypeData.Type == typeof(object))
|
||||
return ReadTypedPrimitive (AnyType);
|
||||
}
|
||||
else {
|
||||
XmlTypeMapping realMap = typeMap.GetRealElementMap (Reader.LocalName, Reader.NamespaceURI);
|
||||
if (realMap != null && realMap != typeMap)
|
||||
return ReadObject(realMap, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
object ob = CreateInstance (typeMap.TypeData.Type, true);
|
||||
|
||||
|
@ -389,7 +389,7 @@ namespace System.Xml.Serialization
|
||||
return (XmlTypeMapMemberAttribute)_attributeMembers [BuildKey (name,ns, -1)];
|
||||
}
|
||||
|
||||
public XmlTypeMapElementInfo GetElement(string name, string ns, int minimalOrder)
|
||||
public XmlTypeMapElementInfo GetElement (string name, string ns, int minimalOrder)
|
||||
{
|
||||
if (_elements == null)
|
||||
return null;
|
||||
@ -404,22 +404,38 @@ namespace System.Xml.Serialization
|
||||
selected = info;
|
||||
}
|
||||
}
|
||||
else if (info.MappedType != null && info.MappedType.DerivedTypes.Count > 0) {
|
||||
foreach (XmlTypeMapping derrivedInfo in info.MappedType.DerivedTypes) {
|
||||
if (derrivedInfo.ElementName == name && derrivedInfo.Namespace == ns) {
|
||||
if (info.ExplicitOrder < minimalOrder)
|
||||
continue;
|
||||
|
||||
if (selected == null || selected.ExplicitOrder > info.ExplicitOrder) {
|
||||
selected = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return selected;
|
||||
}
|
||||
|
||||
public XmlTypeMapElementInfo GetElement(string name, string ns)
|
||||
public XmlTypeMapElementInfo GetElement (string name, string ns)
|
||||
{
|
||||
if (_elements == null) return null;
|
||||
|
||||
foreach (XmlTypeMapElementInfo info in _elements.Values)
|
||||
if (info.ElementName == name && info.Namespace == ns)
|
||||
return info;
|
||||
|
||||
else if (info.MappedType != null && info.MappedType.DerivedTypes.Count > 0) {
|
||||
foreach (XmlTypeMapping derrivedInfo in info.MappedType.DerivedTypes)
|
||||
if (derrivedInfo.ElementName == name && derrivedInfo.Namespace == ns)
|
||||
return info;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public XmlTypeMapElementInfo GetElement (int index)
|
||||
{
|
||||
if (_elements == null) return null;
|
||||
|
Reference in New Issue
Block a user