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

◆ CreateDataContract() [2/2]

static DataContract System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract ( Type type)
inlinestaticprivateinherited

Definition at line 364 of file DataContract.cs.

365 {
367 Type type2 = type;
370 if (dataContract == null)
371 {
372 if (type.IsArray)
373 {
374 dataContract = new CollectionDataContract(type);
375 }
376 else if (type.IsEnum)
377 {
378 dataContract = new EnumDataContract(type);
379 }
380 else if (Globals.TypeOfIXmlSerializable.IsAssignableFrom(type))
381 {
382 dataContract = new XmlDataContract(type);
383 }
384 else if (Globals.TypeOfScriptObject_IsAssignableFrom(type))
385 {
386 dataContract = Globals.CreateScriptObjectClassDataContract();
387 }
388 else if (!CollectionDataContract.TryCreate(type, out dataContract))
389 {
390 if (!type.IsSerializable && !type.IsDefined(Globals.TypeOfDataContractAttribute, inherit: false) && !ClassDataContract.IsNonAttributedTypeValidForSerialization(type) && !ClassDataContract.IsKnownSerializableType(type))
391 {
393 }
394 dataContract = new ClassDataContract(type);
395 if (type != type2)
396 {
397 ClassDataContract classDataContract = new ClassDataContract(type2);
398 if (dataContract.StableName != classDataContract.StableName)
399 {
401 }
402 }
403 }
404 }
405 return dataContract;
406 }
static void ThrowInvalidDataContractException(string message, Type type)
DataContract(DataContractCriticalHelper helper)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string TypeNotSerializable
Definition SR.cs:286
Definition SR.cs:7

References System.Runtime.Serialization.Globals.CreateScriptObjectClassDataContract(), System.Runtime.Serialization.Dictionary, System.SR.Format(), System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetBuiltInDataContract(), System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractAdapterType(), System.Runtime.Serialization.ClassDataContract.IsKnownSerializableType(), System.Runtime.Serialization.ClassDataContract.IsNonAttributedTypeValidForSerialization(), System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(), System.Runtime.Serialization.CollectionDataContract.TryCreate(), System.type, System.SR.TypeNotSerializable, System.Runtime.Serialization.Globals.TypeOfDataContractAttribute, System.Runtime.Serialization.Globals.TypeOfIXmlSerializable, System.Runtime.Serialization.Globals.TypeOfScriptObject_IsAssignableFrom(), and System.Runtime.Serialization.DataContract.UnwrapNullableType().