Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadSerializationInfo()

SerializationInfo System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadSerializationInfo ( XmlReaderDelegator xmlReader,
Type type )
inlineinherited

Definition at line 523 of file XmlObjectSerializerReadContext.cs.

524 {
525 SerializationInfo serializationInfo = new SerializationInfo(type, XmlObjectSerializer.FormatterConverter);
527 while ((xmlNodeType = xmlReader.MoveToContent()) != XmlNodeType.EndElement)
528 {
529 if (xmlNodeType != XmlNodeType.Element)
530 {
531 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnexpectedStateException(XmlNodeType.Element, xmlReader));
532 }
533 if (xmlReader.NamespaceURI.Length != 0)
534 {
536 continue;
537 }
538 string name = XmlConvert.DecodeName(xmlReader.LocalName);
541 object value;
542 if (attributes.Ref != Globals.NewObjectId)
543 {
544 xmlReader.Skip();
545 value = GetExistingObject(attributes.Ref, null, name, string.Empty);
546 }
547 else if (attributes.XsiNil)
548 {
549 xmlReader.Skip();
550 value = null;
551 }
552 else
553 {
554 value = InternalDeserialize(xmlReader, Globals.TypeOfObject, name, string.Empty);
555 }
556 serializationInfo.AddValue(name, value);
557 }
558 return serializationInfo;
559 }
static Exception CreateUnexpectedStateException(XmlNodeType expectedState, XmlReaderDelegator xmlReader)
object GetExistingObject(string id, Type type, string name, string ns)
virtual object InternalDeserialize(XmlReaderDelegator xmlReader, int id, RuntimeTypeHandle declaredTypeHandle, string name, string ns)
static ? string DecodeName(string? name)
Definition XmlConvert.cs:55

References System.Runtime.Serialization.XmlObjectSerializerReadContext.attributes, System.Runtime.Serialization.XmlObjectSerializerReadContext.CreateUnexpectedStateException(), System.Xml.XmlConvert.DecodeName(), System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.XmlObjectSerializer.FormatterConverter, System.Runtime.Serialization.XmlObjectSerializerReadContext.GetExistingObject(), System.Runtime.Serialization.XmlObjectSerializerContext.IncrementItemCount(), System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(), System.Runtime.Serialization.Globals.NewObjectId, System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadAttributes(), System.Runtime.Serialization.Attributes.Ref, System.Runtime.Serialization.XmlObjectSerializerReadContext.SkipUnknownElement(), System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.type, System.Runtime.Serialization.Globals.TypeOfObject, System.value, and System.Runtime.Serialization.Attributes.XsiNil.

Referenced by System.Runtime.Serialization.ReflectionReader.ReadISerializable(), and System.Runtime.Serialization.SurrogateDataContract.ReadXmlValue().