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

◆ InternalSerializeWithSurrogate()

void System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerializeWithSurrogate ( XmlWriterDelegator xmlWriter,
object obj,
bool isDeclaredType,
bool writeXsiType,
int declaredTypeID,
RuntimeTypeHandle declaredTypeHandle )
inlineprivateinherited

Definition at line 227 of file XmlObjectSerializerWriteContextComplex.cs.

228 {
229 RuntimeTypeHandle handle = (isDeclaredType ? declaredTypeHandle : obj.GetType().TypeHandle);
230 object obj2 = obj;
231 int oldObjId = 0;
232 Type objType = Type.GetTypeFromHandle(handle);
235 obj = DataContractSerializer.SurrogateToDataContractType(_serializationSurrogateProvider, obj, surrogatedType, ref objType);
236 handle = objType.TypeHandle;
237 if (obj2 != obj)
238 {
239 oldObjId = base.SerializedObjects.ReassignId(0, obj2, obj);
240 }
241 if (writeXsiType)
242 {
243 surrogatedType = Globals.TypeOfObject;
245 }
246 else if (declaredTypeHandle.Equals(handle))
247 {
250 }
251 else
252 {
254 }
255 if (obj2 != obj)
256 {
257 base.SerializedObjects.ReassignId(oldObjId, obj, obj2);
258 }
259 }
void SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, object obj, RuntimeTypeHandle declaredTypeHandle)
virtual void SerializeWithXsiType(XmlWriterDelegator xmlWriter, object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, int declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType)

References System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex._serializationSurrogateProvider, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.XmlObjectSerializerContext.GetDataContract(), System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.GetSurrogatedType(), System.Type.GetTypeFromHandle(), System.handle, System.obj, System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(), System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiType(), System.Runtime.Serialization.DataContractSerializer.SurrogateToDataContractType(), and System.Runtime.Serialization.Globals.TypeOfObject.

Referenced by System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize().