System.Runtime.Serialization.XmlFormatterDeserializer.DeserializeByMap C# (CSharp) Method

DeserializeByMap() private method

private DeserializeByMap ( XmlQualifiedName name, Type type, XmlReader reader ) : object
name System.Xml.XmlQualifiedName
type System.Type
reader XmlReader
return object
		object DeserializeByMap (QName name, Type type, XmlReader reader)
		{
			SerializationMap map = resolved_qnames.ContainsKey (name) ? types.FindUserMap (type) : types.FindUserMap (name); // use type when the name is "resolved" one. Otherwise use name (there are cases that type cannot be resolved by type).
			if (map == null && (name.Name.StartsWith ("ArrayOf", StringComparison.Ordinal) ||
			    name.Namespace == KnownTypeCollection.MSArraysNamespace ||
			    name.Namespace.StartsWith (KnownTypeCollection.DefaultClrNamespaceBase, StringComparison.Ordinal))) {
				var it = GetTypeFromNamePair (name.Name, name.Namespace);
				types.Add (it);
				map = types.FindUserMap (name);
			}
			if (map == null)
				throw new SerializationException (String.Format ("Unknown type {0} is used for DataContract with reference of name {1}. Any derived types of a data contract or a data member should be added to KnownTypes.", type, name));

			return map.DeserializeObject (reader, this);
		}