System.Runtime.Serialization.XmlFormatterDeserializer.Deserialize C# (CSharp) Метод

Deserialize() публичный статический Метод

public static Deserialize ( XmlReader reader, Type declaredType, KnownTypeCollection knownTypes, IDataContractSurrogate surrogate, DataContractResolver resolver, DataContractResolver defaultResolver, string name, string ns, bool verifyObjectName ) : object
reader XmlReader
declaredType System.Type
knownTypes KnownTypeCollection
surrogate IDataContractSurrogate
resolver DataContractResolver
defaultResolver DataContractResolver
name string
ns string
verifyObjectName bool
Результат object
		public static object Deserialize (XmlReader reader, Type declaredType,
			KnownTypeCollection knownTypes, IDataContractSurrogate surrogate, DataContractResolver resolver, DataContractResolver defaultResolver,
			string name, string ns, bool verifyObjectName)
		{
			reader.MoveToContent ();
			if (verifyObjectName)
				if (reader.NodeType != XmlNodeType.Element ||
				    reader.LocalName != name ||
				    reader.NamespaceURI != ns)
					throw new SerializationException (String.Format ("Expected element '{0}' in namespace '{1}', but found {2} node '{3}' in namespace '{4}'", name, ns, reader.NodeType, reader.LocalName, reader.NamespaceURI));
//				Verify (knownTypes, declaredType, name, ns, reader);
			return new XmlFormatterDeserializer (knownTypes, surrogate, resolver, defaultResolver).Deserialize (declaredType, reader);
		}

Same methods

XmlFormatterDeserializer::Deserialize ( Type type, XmlReader reader ) : object

Usage Example

Пример #1
0
        public override object DeserializeContent(XmlReader reader, XmlFormatterDeserializer deserializer, string id)
        {
            object instance = CreateInstance();

            HandleId(id, deserializer, instance);
            int depth = reader.NodeType == XmlNodeType.None ? reader.Depth : reader.Depth - 1;

            while (reader.NodeType == XmlNodeType.Element && reader.Depth > depth)
            {
                if (reader.IsEmptyElement)
                {
                    throw new XmlException(String.Format("Unexpected empty element for dictionary entry: name {0}", reader.Name));
                }
                // FIXME: sloppy parsing
                reader.ReadStartElement();                 // item_qname.Name, item_qname.Namespace);
                reader.MoveToContent();
                object key = deserializer.Deserialize(key_type, reader);
                reader.MoveToContent();
                object val = deserializer.Deserialize(value_type, reader);
                reader.MoveToContent();
                reader.ReadEndElement();                  // of pair
                reader.MoveToContent();

                if (instance is IDictionary)
                {
                    ((IDictionary)instance).Add(key, val);
                }
                else if (add_method != null)
                {
                    add_method.Invoke(instance, new object [] { key, val });
                }
                else
                {
                    throw new NotImplementedException(String.Format("Type {0} is not supported", RuntimeType));
                }
            }
            return(instance);
        }
All Usage Examples Of System.Runtime.Serialization.XmlFormatterDeserializer::Deserialize