Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XmlObjectSerializerReadContextComplex.cs
Go to the documentation of this file.
3
5
7{
8 private readonly bool _preserveObjectReferences;
9
10 private readonly SerializationMode _mode;
11
13
14 internal override SerializationMode Mode => _mode;
15
23
28
29 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
31 {
32 if (_mode == SerializationMode.SharedContract)
33 {
35 {
36 return base.InternalDeserialize(xmlReader, declaredTypeID, declaredTypeHandle, name, ns);
37 }
39 }
41 }
42
43 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
44 internal override object InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, string name, string ns)
45 {
46 if (_mode == SerializationMode.SharedContract)
47 {
49 {
50 return base.InternalDeserialize(xmlReader, declaredType, name, ns);
51 }
53 }
55 }
56
57 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
59 {
60 if (_mode == SerializationMode.SharedContract)
61 {
63 {
64 return base.InternalDeserialize(xmlReader, declaredType, dataContract, name, ns);
65 }
67 }
69 }
70
71 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
73 {
74 object retObj = null;
76 {
77 return retObj;
78 }
80 string clrType = attributes.ClrType;
82 if (clrAssembly != null && clrType != null)
83 {
85 Type type;
87 if (dataContract == null)
88 {
89 if (assembly == null)
90 {
92 }
94 }
96 if (declaredType != null && declaredType.IsArray)
97 {
99 }
100 }
101 else
102 {
103 if (clrAssembly != null)
104 {
105 throw XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(xmlReader, System.SR.Format(System.SR.AttributeNotFound, "http://schemas.microsoft.com/2003/10/Serialization/", "Type", xmlReader.NodeType, xmlReader.NamespaceURI, xmlReader.LocalName)));
106 }
107 if (clrType != null)
108 {
109 throw XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(xmlReader, System.SR.Format(System.SR.AttributeNotFound, "http://schemas.microsoft.com/2003/10/Serialization/", "Assembly", xmlReader.NodeType, xmlReader.NamespaceURI, xmlReader.LocalName)));
110 }
111 if (declaredType == null)
112 {
113 throw XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(xmlReader, System.SR.Format(System.SR.AttributeNotFound, "http://schemas.microsoft.com/2003/10/Serialization/", "Type", xmlReader.NodeType, xmlReader.NamespaceURI, xmlReader.LocalName)));
114 }
116 }
118 }
119
120 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
135
140
141 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
143 {
145 if (type != null)
146 {
147 return GetDataContract(type);
148 }
149 return null;
150 }
151
152 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
154 {
155 if (_mode == SerializationMode.SharedContract)
156 {
157 return base.ResolveDataContractFromTypeName();
158 }
160 Type type;
161 if (attributes.ClrAssembly != null && attributes.ClrType != null)
162 {
164 }
165 return null;
166 }
167
168 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
188
189 [RequiresUnreferencedCode("Data Contract Serialization and Deserialization might require types that cannot be statically analyzed. Make sure all of the required types are preserved.")]
204
205 internal override int GetArraySize()
206 {
208 {
209 return -1;
210 }
211 return attributes.ArraySZSize;
212 }
213}
static Type GetSurrogatedType(ISerializationSurrogateProvider serializationSurrogateProvider, Type type)
static Type GetDataContractType(ISerializationSurrogateProvider surrogateProvider, Type type)
static object GetDeserializedObject(ISerializationSurrogateProvider surrogateProvider, object obj, Type objType, Type memberType)
static string GetClrTypeFullName(Type type)
DataContract ResolveDataContractInSharedTypeMode(string assemblyName, string typeName, out Assembly assembly, out Type type)
override object InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, string name, string ns)
XmlObjectSerializerReadContextComplex(XmlObjectSerializer serializer, int maxItemsInObjectGraph, StreamingContext streamingContext, bool ignoreExtensionDataObject)
override object InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, string name, string ns)
override void CheckIfTypeSerializable(Type memberType, bool isMemberTypeSerializable)
Type ResolveDataContractTypeInSharedTypeMode(string assemblyName, string typeName, out Assembly assembly)
object InternalDeserializeInSharedTypeMode(XmlReaderDelegator xmlReader, int declaredTypeID, Type declaredType, string name, string ns)
override object InternalDeserialize(XmlReaderDelegator xmlReader, int declaredTypeID, RuntimeTypeHandle declaredTypeHandle, string name, string ns)
object InternalDeserializeWithSurrogate(XmlReaderDelegator xmlReader, Type declaredType, DataContract surrogateDataContract, string name, string ns)
XmlObjectSerializerReadContextComplex(DataContractSerializer serializer, DataContract rootTypeDataContract, DataContractResolver dataContractResolver)
virtual object ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader)
bool TryHandleNullOrRef(XmlReaderDelegator reader, Type declaredType, string name, string ns, ref object retObj)
void ReplaceDeserializedObject(string id, object oldObj, object newObj)
static string TryAddLineInfo(XmlReaderDelegator reader, string errorMessage)
static SerializationException CreateSerializationException(string errorMessage)
static string AssemblyNotFound
Definition SR.cs:616
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string ClrTypeNotFound
Definition SR.cs:618
static string TypeNotSerializable
Definition SR.cs:286
static string AttributeNotFound
Definition SR.cs:620
static string SurrogatesWithGetOnlyCollectionsNotSupportedSerDeser
Definition SR.cs:632
static string PlatformNotSupported_NetDataContractSerializer
Definition SR.cs:688
Definition SR.cs:7
static Type GetTypeFromHandle(RuntimeTypeHandle handle)