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

◆ InternalDeserialize() [1/4]

object System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize ( XmlReaderDelegator reader,
string name,
string ns,
Type declaredType,
ref DataContract dataContract )
inlineprotectedinherited

Definition at line 146 of file XmlObjectSerializerReadContext.cs.

147 {
148 object retObj = null;
149 if (TryHandleNullOrRef(reader, dataContract.UnderlyingType, name, ns, ref retObj))
150 {
151 return retObj;
152 }
153 bool flag = false;
154 if (dataContract.KnownDataContracts != null)
155 {
156 scopedKnownTypes.Push(dataContract.KnownDataContracts);
157 flag = true;
158 }
159 if (attributes.XsiTypeName != null)
160 {
162 if (dataContract2 == null)
163 {
164 if (base.DataContractResolver == null)
165 {
166 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(reader, System.SR.Format(System.SR.DcTypeNotFoundOnDeserialize, attributes.XsiTypeNamespace, attributes.XsiTypeName, reader.NamespaceURI, reader.LocalName))));
167 }
168 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(reader, System.SR.Format(System.SR.DcTypeNotResolvedOnDeserialize, attributes.XsiTypeNamespace, attributes.XsiTypeName, reader.NamespaceURI, reader.LocalName))));
169 }
171 flag = ReplaceScopedKnownTypesTop(dataContract.KnownDataContracts, flag);
172 }
173 if (dataContract.IsISerializable && attributes.FactoryTypeName != null)
174 {
176 if (dataContract3 != null)
177 {
178 if (!dataContract3.IsISerializable)
179 {
180 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.SR.Format(System.SR.FactoryTypeNotISerializable, DataContract.GetClrTypeFullName(dataContract3.UnderlyingType), DataContract.GetClrTypeFullName(dataContract.UnderlyingType))));
181 }
183 flag = ReplaceScopedKnownTypesTop(dataContract.KnownDataContracts, flag);
184 }
185 }
186 if (flag)
187 {
188 object result = ReadDataContractValue(dataContract, reader);
190 return result;
191 }
192 return ReadDataContractValue(dataContract, reader);
193 }
DataContract ResolveDataContractFromKnownTypes(XmlQualifiedName typeName)
bool ReplaceScopedKnownTypesTop(Dictionary< XmlQualifiedName, DataContract > knownDataContracts, bool knownTypesAddedInCurrentScope)
virtual object ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader)
bool TryHandleNullOrRef(XmlReaderDelegator reader, Type declaredType, string name, string ns, ref object retObj)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string FactoryTypeNotISerializable
Definition SR.cs:696
static string DcTypeNotResolvedOnDeserialize
Definition SR.cs:68
static string DcTypeNotFoundOnDeserialize
Definition SR.cs:64
Definition SR.cs:7
void Push(Dictionary< XmlQualifiedName, DataContract > dataContractDictionary)

References System.Runtime.Serialization.XmlObjectSerializerReadContext.attributes, System.Runtime.Serialization.XmlObjectSerializer.CreateSerializationException(), System.SR.DcTypeNotFoundOnDeserialize, System.SR.DcTypeNotResolvedOnDeserialize, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.Attributes.FactoryTypeName, System.Runtime.Serialization.Attributes.FactoryTypeNamespace, System.SR.FactoryTypeNotISerializable, System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.Runtime.Serialization.XmlReaderDelegator.LocalName, System.Runtime.Serialization.XmlReaderDelegator.NamespaceURI, System.Runtime.Serialization.ScopedKnownTypes.Pop(), System.Runtime.Serialization.ScopedKnownTypes.Push(), System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadDataContractValue(), System.Runtime.Serialization.XmlObjectSerializerReadContext.ReplaceScopedKnownTypesTop(), System.Runtime.Serialization.XmlObjectSerializerContext.ResolveDataContractFromKnownTypes(), System.Runtime.Serialization.XmlObjectSerializerContext.scopedKnownTypes, System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.Runtime.Serialization.XmlObjectSerializer.TryAddLineInfo(), System.Runtime.Serialization.XmlObjectSerializerReadContext.TryHandleNullOrRef(), System.Runtime.Serialization.Attributes.XsiTypeName, and System.Runtime.Serialization.Attributes.XsiTypeNamespace.