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

◆ ReadXmlValue()

override object System.Runtime.Serialization.SurrogateDataContract.ReadXmlValue ( XmlReaderDelegator xmlReader,
XmlObjectSerializerReadContext context )
inlinevirtual

Reimplemented from System.Runtime.Serialization.DataContract.

Definition at line 68 of file SurrogateDataContract.cs.

69 {
70 xmlReader.Read();
71 Type underlyingType = base.UnderlyingType;
72 object obj = (underlyingType.IsArray ? Array.CreateInstance(underlyingType.GetElementType(), 0) : GetUninitializedObject(underlyingType));
73 context.AddNewObject(obj);
74 string objectId = context.GetObjectId();
75 SerializationInfo serInfo = context.ReadSerializationInfo(xmlReader, underlyingType);
76 object obj2 = SerializationSurrogateSetObjectData(obj, serInfo, context.GetStreamingContext());
77 if (obj2 == null)
78 {
79 obj2 = obj;
80 }
81 if (obj2 is IDeserializationCallback)
82 {
83 ((IDeserializationCallback)obj2).OnDeserialization(null);
84 }
85 if (obj2 is IObjectReference)
86 {
87 obj2 = GetRealObject((IObjectReference)obj2, context.GetStreamingContext());
88 }
89 context.ReplaceDeserializedObject(objectId, obj, obj2);
90 xmlReader.ReadEndElement();
91 return obj2;
92 }
object SerializationSurrogateSetObjectData(object obj, SerializationInfo serInfo, StreamingContext context)
static object GetRealObject(IObjectReference obj, StreamingContext context)

References System.Runtime.Serialization.XmlObjectSerializerReadContext.AddNewObject(), System.Array.CreateInstance(), System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.XmlObjectSerializerReadContext.GetObjectId(), System.Runtime.Serialization.SurrogateDataContract.GetRealObject(), System.Runtime.Serialization.XmlObjectSerializerContext.GetStreamingContext(), System.Runtime.Serialization.SurrogateDataContract.GetUninitializedObject(), System.obj, System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadSerializationInfo(), System.Runtime.Serialization.XmlObjectSerializerReadContext.ReplaceDeserializedObject(), and System.Runtime.Serialization.SurrogateDataContract.SerializationSurrogateSetObjectData().