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

◆ ClassDataContractCriticalHelper() [1/2]

System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.ClassDataContractCriticalHelper ( [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicProperties)] Type type)
inlinepackage

Definition at line 290 of file ClassDataContract.cs.

291 : base(type)
292 {
294 if (type == Globals.TypeOfDBNull)
295 {
299 base.Name = xmlDictionary.Add(base.StableName.Name);
300 base.Namespace = xmlDictionary.Add(base.StableName.Namespace);
303 return;
304 }
305 Type type2 = type.BaseType;
306 _isISerializable = Globals.TypeOfISerializable.IsAssignableFrom(type);
309 {
310 if (HasDataContract)
311 {
312 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(System.SR.Format(System.SR.ISerializableCannotHaveDataContract, DataContract.GetClrTypeFullName(type))));
313 }
314 if (type2 != null && (!type2.IsSerializable || !Globals.TypeOfISerializable.IsAssignableFrom(type2)))
315 {
316 type2 = null;
317 }
318 }
320 base.IsValueType = type.IsValueType;
321 if (type2 != null && type2 != Globals.TypeOfObject && type2 != Globals.TypeOfValueType && type2 != Globals.TypeOfUri)
322 {
323 DataContract dataContract = DataContract.GetDataContract(type2);
324 if (dataContract is CollectionDataContract)
325 {
326 BaseContract = ((CollectionDataContract)dataContract).SharedTypeContract as ClassDataContract;
327 }
328 else
329 {
331 }
333 {
334 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(System.SR.Format(System.SR.AttributedTypesCannotInheritFromNonAttributedSerializableTypes, DataContract.GetClrTypeFullName(type), DataContract.GetClrTypeFullName(type2))));
335 }
336 }
337 else
338 {
339 BaseContract = null;
340 }
341 _hasExtensionData = Globals.TypeOfIExtensibleDataObject.IsAssignableFrom(type);
343 {
344 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(System.SR.Format(System.SR.OnlyDataContractTypesCanHaveExtensionData, DataContract.GetClrTypeFullName(type))));
345 }
347 {
349 }
350 else
351 {
355 base.Name = xmlDictionary2.Add(base.StableName.Name);
356 base.Namespace = xmlDictionary2.Add(base.StableName.Namespace);
357 int num = 0;
358 int num2 = 0;
359 if (BaseContract == null)
360 {
364 }
365 else
366 {
367 num = BaseContract.MemberNames.Length;
375 }
376 ContractNamespaces[num2] = base.Namespace;
377 for (int i = 0; i < Members.Count; i++)
378 {
380 MemberNamespaces[i + num] = base.Namespace;
381 }
382 }
384 _isScriptObject = IsNonAttributedType && Globals.TypeOfScriptObject_IsAssignableFrom(base.UnderlyingType);
385 }
void Add(TKey key, TValue value)
void SetIsNonAttributedType([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors|DynamicallyAccessedMemberTypes.Interfaces)] Type type)
void SetKeyValuePairAdapterFlags([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors|DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods|DynamicallyAccessedMemberTypes.PublicFields|DynamicallyAccessedMemberTypes.PublicProperties)] Type type)
DataContract(DataContractCriticalHelper helper)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string ISerializableCannotHaveDataContract
Definition SR.cs:660
static string AttributedTypesCannotInheritFromNonAttributedSerializableTypes
Definition SR.cs:260
static string OnlyDataContractTypesCanHaveExtensionData
Definition SR.cs:676
Definition SR.cs:7
static XmlDictionaryString Empty

References System.Runtime.Serialization.ClassDataContract.ClassDataContract(), System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper._hasExtensionData, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper._isISerializable, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper._isNonAttributedType, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper._isScriptObject, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper._members, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.SR.AttributedTypesCannotInheritFromNonAttributedSerializableTypes, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.BaseContract, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.ContractNamespaces, System.Runtime.Serialization.ClassDataContract.ContractNamespaces, System.Array.Copy(), System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.EnsureMethodsImported(), System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.Runtime.Serialization.DataContract.GetDataContract(), System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.GetStableNameAndSetHasDataContract(), System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.HasDataContract, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.ImportDataMembers(), System.SR.ISerializableCannotHaveDataContract, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.IsNonAttributedType, System.Runtime.Serialization.ClassDataContract.IsNonAttributedType, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.MemberNames, System.Runtime.Serialization.ClassDataContract.MemberNames, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.MemberNamespaces, System.Runtime.Serialization.ClassDataContract.MemberNamespaces, System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.Members, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.Name, System.SR.OnlyDataContractTypesCanHaveExtensionData, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.SetDataContractName(), System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.SetIsNonAttributedType(), System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.SetKeyValuePairAdapterFlags(), System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.type, System.Runtime.Serialization.Globals.TypeOfDBNull, System.Runtime.Serialization.Globals.TypeOfIExtensibleDataObject, System.Runtime.Serialization.Globals.TypeOfISerializable, System.Runtime.Serialization.Globals.TypeOfObject, System.Runtime.Serialization.Globals.TypeOfScriptObject_IsAssignableFrom(), System.Runtime.Serialization.Globals.TypeOfUri, and System.Runtime.Serialization.Globals.TypeOfValueType.

Referenced by System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.Clone().