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

◆ ReadEnumValue() [2/2]

object System.Runtime.Serialization.EnumDataContract.ReadEnumValue ( XmlReaderDelegator reader)
inlinepackage

Definition at line 335 of file EnumDataContract.cs.

336 {
337 string text = reader.ReadElementContentAsString();
338 long num = 0L;
339 int i = 0;
340 if (IsFlags)
341 {
342 for (; i < text.Length && text[i] == ' '; i++)
343 {
344 }
345 int num2 = i;
346 int num3 = 0;
347 for (; i < text.Length; i++)
348 {
349 if (text[i] == ' ')
350 {
351 num3 = i - num2;
352 if (num3 > 0)
353 {
354 num |= ReadEnumValue(text, num2, num3);
355 }
356 for (i++; i < text.Length && text[i] == ' '; i++)
357 {
358 }
359 num2 = i;
360 if (i == text.Length)
361 {
362 break;
363 }
364 }
365 }
366 num3 = i - num2;
367 if (num3 > 0)
368 {
369 num |= ReadEnumValue(text, num2, num3);
370 }
371 }
372 else
373 {
374 if (text.Length == 0)
375 {
376 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.SR.Format(System.SR.InvalidEnumValueOnRead, text, DataContract.GetClrTypeFullName(base.UnderlyingType))));
377 }
378 num = ReadEnumValue(text, 0, text.Length);
379 }
380 if (IsULong)
381 {
382 return Enum.ToObject(base.UnderlyingType, (object)(ulong)num);
383 }
384 return Enum.ToObject(base.UnderlyingType, (object)num);
385 }
DataContract(DataContractCriticalHelper helper)
object ReadEnumValue(XmlReaderDelegator reader)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string InvalidEnumValueOnRead
Definition SR.cs:146
Definition SR.cs:7

References System.Runtime.Serialization.XmlObjectSerializer.CreateSerializationException(), System.Runtime.Serialization.Dictionary, System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.SR.InvalidEnumValueOnRead, System.Runtime.Serialization.EnumDataContract.IsFlags, System.Runtime.Serialization.EnumDataContract.IsULong, System.L, System.Runtime.Serialization.XmlReaderDelegator.ReadElementContentAsString(), System.Runtime.Serialization.EnumDataContract.ReadEnumValue(), System.text, System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), and System.Enum.ToObject().

Referenced by System.Runtime.Serialization.EnumDataContract.ReadEnumValue(), and System.Runtime.Serialization.EnumDataContract.ReadXmlValue().