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

◆ GetId()

static int System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetId ( RuntimeTypeHandle typeHandle)
inlinestaticpackageinherited

Definition at line 302 of file DataContract.cs.

303 {
305 {
308 if (!s_typeToIDCache.TryGetValue(s_typeHandleRef, out var value))
309 {
310 int num = s_dataContractID++;
311 if (num >= s_dataContractCache.Length)
312 {
313 int num2 = ((num < 1073741823) ? (num * 2) : int.MaxValue);
314 if (num2 <= num)
315 {
316 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(System.SR.DataContractCacheOverflow));
317 }
319 }
320 value = new IntRef(num);
321 try
322 {
323 s_typeToIDCache.Add(new TypeHandleRef(typeHandle), value);
324 }
325 catch (Exception ex)
326 {
327 throw DiagnosticUtility.ExceptionUtility.ThrowHelperFatal(ex.Message, ex);
328 }
329 }
330 return value.Value;
331 }
332 }
static readonly Dictionary< TypeHandleRef, IntRef > s_typeToIDCache
static RuntimeTypeHandle GetDataContractAdapterTypeHandle(RuntimeTypeHandle typeHandle)
static string DataContractCacheOverflow
Definition SR.cs:54
Definition SR.cs:7

References System.SR.DataContractCacheOverflow, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractAdapterTypeHandle(), System.Runtime.Serialization.DataContract.DataContractCriticalHelper.s_cacheLock, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.s_dataContractCache, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.s_dataContractID, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.s_typeHandleRef, System.Runtime.Serialization.DataContract.DataContractCriticalHelper.s_typeToIDCache, System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperFatal(), and System.value.

Referenced by System.Runtime.Serialization.DataContract.GetId().