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

◆ Ldc() [6/6]

void System.Runtime.Serialization.CodeGenerator.Ldc ( object o)
inlinepackage

Definition at line 954 of file CodeGenerator.cs.

955 {
956 Type type = o.GetType();
957 if (o is Type)
958 {
959 Ldtoken((Type)o);
961 return;
962 }
963 if (type.IsEnum)
964 {
965 if (_codeGenTrace != 0)
966 {
967 EmitSourceComment("Ldc " + o.GetType()?.ToString() + "." + o);
968 }
969 Ldc(Convert.ChangeType(o, Enum.GetUnderlyingType(type), null));
970 return;
971 }
972 switch (type.GetTypeCode())
973 {
974 case TypeCode.Boolean:
975 Ldc((bool)o);
976 break;
977 case TypeCode.Char:
978 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(System.SR.CharIsInvalidPrimitive));
979 case TypeCode.SByte:
980 case TypeCode.Byte:
981 case TypeCode.Int16:
982 case TypeCode.UInt16:
984 break;
985 case TypeCode.Int32:
986 Ldc((int)o);
987 break;
988 case TypeCode.UInt32:
989 Ldc((int)(uint)o);
990 break;
991 case TypeCode.UInt64:
992 Ldc((long)(ulong)o);
993 break;
994 case TypeCode.Int64:
995 Ldc((long)o);
996 break;
997 case TypeCode.Single:
998 Ldc((float)o);
999 break;
1000 case TypeCode.Double:
1001 Ldc((double)o);
1002 break;
1003 case TypeCode.String:
1004 Ldstr((string)o);
1005 break;
1006 default:
1007 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.SR.Format(System.SR.UnknownConstantType, DataContract.GetClrTypeFullName(type))));
1008 }
1009 }
static CultureInfo InvariantCulture
static string UnknownConstantType
Definition SR.cs:294
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string CharIsInvalidPrimitive
Definition SR.cs:28
Definition SR.cs:7

References System.Runtime.Serialization.CodeGenerator._codeGenTrace, System.Reflection.Emit.Call, System.Convert.ChangeType(), System.SR.CharIsInvalidPrimitive, System.Runtime.Serialization.XmlObjectSerializer.CreateSerializationException(), System.Runtime.Serialization.CodeGenerator.EmitSourceComment(), System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.Runtime.Serialization.CodeGenerator.GetTypeFromHandle, System.Enum.GetUnderlyingType(), System.Globalization.CultureInfo.InvariantCulture, System.Runtime.Serialization.CodeGenerator.Ldc(), System.Reflection.Emit.Ldstr, System.Reflection.Emit.Ldtoken, System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.Convert.ToInt32(), System.type, and System.SR.UnknownConstantType.

Referenced by System.Runtime.Serialization.CodeGenerator.EndFor(), System.Runtime.Serialization.CodeGenerator.Ldc(), System.Runtime.Serialization.CodeGenerator.Load(), and System.Runtime.Serialization.CodeGenerator.LoadDefaultValue().