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

◆ IsNonAttributedTypeValidForSerialization()

static bool System.Runtime.Serialization.ClassDataContract.IsNonAttributedTypeValidForSerialization ( [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.Interfaces)] Type type)
inlinestaticpackage

Definition at line 1269 of file ClassDataContract.cs.

1270 {
1271 if (type.IsArray)
1272 {
1273 return false;
1274 }
1275 if (type.IsEnum)
1276 {
1277 return false;
1278 }
1279 if (type.IsGenericParameter)
1280 {
1281 return false;
1282 }
1283 if (Globals.TypeOfIXmlSerializable.IsAssignableFrom(type))
1284 {
1285 return false;
1286 }
1287 if (type.IsPointer)
1288 {
1289 return false;
1290 }
1291 if (type.IsDefined(Globals.TypeOfCollectionDataContractAttribute, inherit: false))
1292 {
1293 return false;
1294 }
1295 Type[] interfaces = type.GetInterfaces();
1296 if (!IsArraySegment(type))
1297 {
1298 Type[] array = interfaces;
1299 foreach (Type type2 in array)
1300 {
1301 if (CollectionDataContract.IsCollectionInterface(type2))
1302 {
1303 return false;
1304 }
1305 }
1306 }
1307 if (type.IsSerializable)
1308 {
1309 return false;
1310 }
1311 if (Globals.TypeOfISerializable.IsAssignableFrom(type))
1312 {
1313 return false;
1314 }
1315 if (type.IsDefined(Globals.TypeOfDataContractAttribute, inherit: false))
1316 {
1317 return false;
1318 }
1319 if (type.IsValueType)
1320 {
1321 return type.IsVisible;
1322 }
1323 if (type.IsVisible)
1324 {
1325 return type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes) != null;
1326 }
1327 return false;
1328 }

References System.array, System.Type.EmptyTypes, System.Type.GetInterfaces(), System.Runtime.Serialization.ClassDataContract.IsArraySegment(), System.Runtime.Serialization.CollectionDataContract.IsCollectionInterface(), System.Type.IsVisible, System.type, System.Runtime.Serialization.Globals.TypeOfCollectionDataContractAttribute, System.Runtime.Serialization.Globals.TypeOfDataContractAttribute, System.Runtime.Serialization.Globals.TypeOfISerializable, and System.Runtime.Serialization.Globals.TypeOfIXmlSerializable.

Referenced by System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(), System.Runtime.Serialization.DataContract.GetNonDCTypeStableName(), System.Runtime.Serialization.DataContract.IsTypeSerializable(), and System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.SetIsNonAttributedType().