286 references to SerializationTypeCode
ILAssembler (45)
GrammarVisitor.cs (45)
877blob.WriteByte((byte)SerializationTypeCode.Boolean); 888blob.WriteByte((byte)SerializationTypeCode.Enum); 905blob.WriteByte((byte)SerializationTypeCode.Int32); 2502var typeCode = (SerializationTypeCode)bytes[0]; 2507SerializationTypeCode.Boolean => valueBytes.Length >= 1 && valueBytes[0] != 0, 2508SerializationTypeCode.Char => valueBytes.Length >= 2 ? BitConverter.ToChar(valueBytes) : '\0', 2509SerializationTypeCode.SByte => valueBytes.Length >= 1 ? (sbyte)valueBytes[0] : (sbyte)0, 2510SerializationTypeCode.Byte => valueBytes.Length >= 1 ? valueBytes[0] : (byte)0, 2511SerializationTypeCode.Int16 => valueBytes.Length >= 2 ? BitConverter.ToInt16(valueBytes) : (short)0, 2512SerializationTypeCode.UInt16 => valueBytes.Length >= 2 ? BitConverter.ToUInt16(valueBytes) : (ushort)0, 2513SerializationTypeCode.Int32 => valueBytes.Length >= 4 ? BitConverter.ToInt32(valueBytes) : 0, 2514SerializationTypeCode.UInt32 => valueBytes.Length >= 4 ? BitConverter.ToUInt32(valueBytes) : 0u, 2515SerializationTypeCode.Int64 => valueBytes.Length >= 8 ? BitConverter.ToInt64(valueBytes) : 0L, 2516SerializationTypeCode.UInt64 => valueBytes.Length >= 8 ? BitConverter.ToUInt64(valueBytes) : 0uL, 2517SerializationTypeCode.Single => valueBytes.Length >= 4 ? BitConverter.ToSingle(valueBytes) : 0f, 2518SerializationTypeCode.Double => valueBytes.Length >= 8 ? BitConverter.ToDouble(valueBytes) : 0d, 2519SerializationTypeCode.String => Encoding.Unicode.GetString(valueBytes), 2521SerializationTypeCode.Type => ExtractSerString(valueBytes), 2524SerializationTypeCode.SZArray => valueBytes.ToArray(), 2526SerializationTypeCode.TaggedObject => valueBytes.ToArray(), 2528SerializationTypeCode.Enum => valueBytes.ToArray(), 2625builder.WriteByte((byte)SerializationTypeCode.String); 4754blob.WriteByte((byte)SerializationTypeCode.SZArray); 4779blob.WriteByte((byte)SerializationTypeCode.Type); 4785blob.WriteByte((byte)SerializationTypeCode.TaggedObject); 4791blob.WriteByte((byte)SerializationTypeCode.Enum); 4818taggedObjectBlob.WriteByte((byte)SerializationTypeCode.TaggedObject); 4843arrayHeader.WriteByte((byte)SerializationTypeCode.SZArray); 4851private static SerializationTypeCode GetTypeCodeForToken(int tokenType) 4855CILParser.INT8 => SerializationTypeCode.SByte, 4856CILParser.UINT8 => SerializationTypeCode.Byte, 4857CILParser.INT16 => SerializationTypeCode.Int16, 4858CILParser.UINT16 => SerializationTypeCode.UInt16, 4859CILParser.INT32_ => SerializationTypeCode.Int32, 4860CILParser.UINT32 => SerializationTypeCode.UInt32, 4861CILParser.INT64_ => SerializationTypeCode.Int64, 4862CILParser.UINT64 => SerializationTypeCode.UInt64, 4863CILParser.FLOAT32 => SerializationTypeCode.Single, 4864CILParser.FLOAT64_ => SerializationTypeCode.Double, 4865CILParser.CHAR => SerializationTypeCode.Char, 4866CILParser.BOOL => SerializationTypeCode.Boolean, 4867CILParser.STRING => SerializationTypeCode.String, 4868CILParser.TYPE => SerializationTypeCode.Type, 4869CILParser.OBJECT => SerializationTypeCode.TaggedObject,
ILCompiler.MetadataTransform (55)
ILCompiler\Metadata\Transform.CustomAttribute.cs (55)
85private static Ecma.SerializationTypeCode TypeDescToSerializationTypeCode(Cts.TypeDesc type) 87Debug.Assert((int)Cts.TypeFlags.Boolean == (int)Ecma.SerializationTypeCode.Boolean); 91case Cts.TypeFlags.Single: return Ecma.SerializationTypeCode.Single; 92case Cts.TypeFlags.Double: return Ecma.SerializationTypeCode.Double; 93case <= Cts.TypeFlags.UInt64: return (Ecma.SerializationTypeCode)type.UnderlyingType.Category; 96return Ecma.SerializationTypeCode.TaggedObject; 99return Ecma.SerializationTypeCode.String; 105return Ecma.SerializationTypeCode.Type; 111Ecma.SerializationTypeCode typeCode = valueReader.ReadSerializationTypeCode(); 115case Ecma.SerializationTypeCode.Type: return module.Context.SystemModule.GetType("System"u8, "Type"u8); 116case Ecma.SerializationTypeCode.SZArray: return module.Context.GetArrayType(SerializationTypeToType(module, ref valueReader)); 117case Ecma.SerializationTypeCode.Enum: return Cts.CustomAttributeTypeNameParser.GetTypeByCustomAttributeTypeName(module, valueReader.ReadSerializedString()); 118case Ecma.SerializationTypeCode.String: return module.Context.GetWellKnownType(Cts.WellKnownType.String); 119case Ecma.SerializationTypeCode.TaggedObject: return module.Context.GetWellKnownType(Cts.WellKnownType.Object); 120case Ecma.SerializationTypeCode.Single: return module.Context.GetWellKnownType(Cts.WellKnownType.Single); 121case Ecma.SerializationTypeCode.Double: return module.Context.GetWellKnownType(Cts.WellKnownType.Double); 122case <= Ecma.SerializationTypeCode.UInt64: return module.Context.GetWellKnownType((Cts.WellKnownType)typeCode); 129private MetadataRecord HandleCustomAttributeConstantValue(Cts.Ecma.EcmaModule module, Ecma.SerializationTypeCode typeCode, ref Ecma.BlobReader valueReader) 131if (typeCode == Ecma.SerializationTypeCode.TaggedObject) 136if (typeCode == Ecma.SerializationTypeCode.Enum) 146if (typeCode == Ecma.SerializationTypeCode.String) 152if (typeCode == Ecma.SerializationTypeCode.Type) 160Ecma.SerializationTypeCode.Boolean => new ConstantBooleanValue { Value = valueReader.ReadBoolean() }, 161Ecma.SerializationTypeCode.Char => new ConstantCharValue { Value = valueReader.ReadChar() }, 162Ecma.SerializationTypeCode.Byte => new ConstantByteValue { Value = valueReader.ReadByte() }, 163Ecma.SerializationTypeCode.SByte => new ConstantSByteValue { Value = valueReader.ReadSByte() }, 164Ecma.SerializationTypeCode.Int16 => new ConstantInt16Value { Value = valueReader.ReadInt16() }, 165Ecma.SerializationTypeCode.UInt16 => new ConstantUInt16Value { Value = valueReader.ReadUInt16() }, 166Ecma.SerializationTypeCode.Int32 => new ConstantInt32Value { Value = valueReader.ReadInt32() }, 167Ecma.SerializationTypeCode.UInt32 => new ConstantUInt32Value { Value = valueReader.ReadUInt32() }, 168Ecma.SerializationTypeCode.Int64 => new ConstantInt64Value { Value = valueReader.ReadInt64() }, 169Ecma.SerializationTypeCode.UInt64 => new ConstantUInt64Value { Value = valueReader.ReadUInt64() }, 170Ecma.SerializationTypeCode.Single => new ConstantSingleValue { Value = valueReader.ReadSingle() }, 171Ecma.SerializationTypeCode.Double => new ConstantDoubleValue { Value = valueReader.ReadDouble() }, 172Ecma.SerializationTypeCode.SZArray => HandleCustomAttributeConstantArray(module, valueReader.ReadSerializationTypeCode(), ref valueReader), 177private MetadataRecord HandleCustomAttributeConstantArray(Cts.Ecma.EcmaModule module, Ecma.SerializationTypeCode elementTypeCode, ref Ecma.BlobReader valueReader) 179if (elementTypeCode == Ecma.SerializationTypeCode.Enum) 195if (elementTypeCode is Ecma.SerializationTypeCode.String) 207if (elementTypeCode is Ecma.SerializationTypeCode.TaggedObject or Ecma.SerializationTypeCode.Type) 213Ecma.SerializationTypeCode typecode = elementTypeCode == Ecma.SerializationTypeCode.Type ? Ecma.SerializationTypeCode.Type : valueReader.ReadSerializationTypeCode(); 221Ecma.SerializationTypeCode.Boolean => new ConstantBooleanArray { Value = GetCustomAttributeConstantArrayElements<bool>(ref valueReader, count) }, 222Ecma.SerializationTypeCode.Char => new ConstantCharArray { Value = GetCustomAttributeConstantArrayElements<char>(ref valueReader, count) }, 223Ecma.SerializationTypeCode.SByte => new ConstantSByteArray { Value = GetCustomAttributeConstantArrayElements<sbyte>(ref valueReader, count) }, 224Ecma.SerializationTypeCode.Byte => new ConstantByteArray { Value = GetCustomAttributeConstantArrayElements<byte>(ref valueReader, count) }, 225Ecma.SerializationTypeCode.Int16 => new ConstantInt16Array { Value = GetCustomAttributeConstantArrayElements<short>(ref valueReader, count) }, 226Ecma.SerializationTypeCode.UInt16 => new ConstantUInt16Array { Value = GetCustomAttributeConstantArrayElements<ushort>(ref valueReader, count) }, 227Ecma.SerializationTypeCode.Int32 => new ConstantInt32Array { Value = GetCustomAttributeConstantArrayElements<int>(ref valueReader, count) }, 228Ecma.SerializationTypeCode.UInt32 => new ConstantUInt32Array { Value = GetCustomAttributeConstantArrayElements<uint>(ref valueReader, count) }, 229Ecma.SerializationTypeCode.Int64 => new ConstantInt64Array { Value = GetCustomAttributeConstantArrayElements<long>(ref valueReader, count) }, 230Ecma.SerializationTypeCode.UInt64 => new ConstantUInt64Array { Value = GetCustomAttributeConstantArrayElements<ulong>(ref valueReader, count) }, 231Ecma.SerializationTypeCode.Single => new ConstantSingleArray { Value = GetCustomAttributeConstantArrayElements<float>(ref valueReader, count) }, 232Ecma.SerializationTypeCode.Double => new ConstantDoubleArray { Value = GetCustomAttributeConstantArrayElements<double>(ref valueReader, count) },
Microsoft.CodeAnalysis (102)
MetadataReader\MetadataDecoder.cs (51)
108(KeyValuePair<string, TypedConstant> nameValuePair, bool isProperty, SerializationTypeCode typeCode, SerializationTypeCode elementTypeCode) DecodeCustomAttributeNamedArgumentOrThrow(ref BlobReader argReader); 1318private void DecodeCustomAttributeFieldOrPropTypeOrThrow(ref BlobReader argReader, out SerializationTypeCode typeCode, out TypeSymbol type, out SerializationTypeCode elementTypeCode, out TypeSymbol elementType, bool isElementType) 1334if (typeCode == SerializationTypeCode.SZArray) 1342SerializationTypeCode unusedElementTypeCode; 1349elementTypeCode = SerializationTypeCode.Invalid; 1354case SerializationTypeCode.TaggedObject: 1358case SerializationTypeCode.Enum: 1376case SerializationTypeCode.Type: 1380case SerializationTypeCode.String: 1381case SerializationTypeCode.Boolean: 1382case SerializationTypeCode.Char: 1383case SerializationTypeCode.SByte: 1384case SerializationTypeCode.Byte: 1385case SerializationTypeCode.Int16: 1386case SerializationTypeCode.UInt16: 1387case SerializationTypeCode.Int32: 1388case SerializationTypeCode.UInt32: 1389case SerializationTypeCode.Int64: 1390case SerializationTypeCode.UInt64: 1391case SerializationTypeCode.Single: 1392case SerializationTypeCode.Double: 1412SerializationTypeCode getTypeCode(ITypeSymbolInternal type) 1416return SerializationTypeCode.Type; 1424var result = type.SpecialType.ToSerializationTypeOrInvalid(); 1426if (result == SerializationTypeCode.Invalid) 1437private TypedConstant DecodeCustomAttributeElementOrThrow(ref BlobReader argReader, SerializationTypeCode typeCode, TypeSymbol type) 1439if (typeCode == SerializationTypeCode.TaggedObject) 1442SerializationTypeCode elementTypeCode; 1446if (typeCode == SerializationTypeCode.SZArray) 1457private TypedConstant DecodeCustomAttributeElementArrayOrThrow(ref BlobReader argReader, SerializationTypeCode elementTypeCode, TypeSymbol elementType, TypeSymbol arrayType) 1484private TypedConstant DecodeCustomAttributePrimitiveElementOrThrow(ref BlobReader argReader, SerializationTypeCode typeCode, TypeSymbol type) 1490case SerializationTypeCode.Boolean: 1493case SerializationTypeCode.SByte: 1496case SerializationTypeCode.Byte: 1499case SerializationTypeCode.Int16: 1502case SerializationTypeCode.UInt16: 1505case SerializationTypeCode.Int32: 1508case SerializationTypeCode.UInt32: 1511case SerializationTypeCode.Int64: 1514case SerializationTypeCode.UInt64: 1517case SerializationTypeCode.Single: 1520case SerializationTypeCode.Double: 1523case SerializationTypeCode.Char: 1526case SerializationTypeCode.String: 1534case SerializationTypeCode.Type: 1554public (KeyValuePair<string, TypedConstant> nameValuePair, bool isProperty, SerializationTypeCode typeCode, SerializationTypeCode elementTypeCode) DecodeCustomAttributeNamedArgumentOrThrow(ref BlobReader argReader) 1567SerializationTypeCode typeCode, elementTypeCode; 1577TypedConstant value = typeCode == SerializationTypeCode.SZArray
MetadataReader\MetadataTypeCodeExtensions.cs (19)
129internal static SerializationTypeCode ToSerializationType(this SpecialType specialType) 131var result = ToSerializationTypeOrInvalid(specialType); 133if (result == SerializationTypeCode.Invalid) 141internal static SerializationTypeCode ToSerializationTypeOrInvalid(this SpecialType specialType) 146return SerializationTypeCode.Boolean; 149return SerializationTypeCode.SByte; 152return SerializationTypeCode.Byte; 155return SerializationTypeCode.Int16; 158return SerializationTypeCode.Int32; 161return SerializationTypeCode.Int64; 164return SerializationTypeCode.UInt16; 167return SerializationTypeCode.UInt32; 170return SerializationTypeCode.UInt64; 173return SerializationTypeCode.Single; 176return SerializationTypeCode.Double; 179return SerializationTypeCode.Char; 182return SerializationTypeCode.String; 185return SerializationTypeCode.TaggedObject; 188return SerializationTypeCode.Invalid;
MetadataReader\PEModule.cs (10)
1368if (typeCode == SerializationTypeCode.String && isProperty && value.ValueInternal is string stringValue) 1412(KeyValuePair<string, TypedConstant> nameValuePair, bool isProperty, SerializationTypeCode typeCode, SerializationTypeCode elementTypeCode) namedArgValues = 1415if (namedArgValues is ({ Key: "IsOptional" }, isProperty: true, typeCode: SerializationTypeCode.Boolean, _)) 1468if (typeCode != SerializationTypeCode.SZArray || elementTypeCode != SerializationTypeCode.Type) 1572(KeyValuePair<string, TypedConstant> nameValuePair, bool isProperty, SerializationTypeCode typeCode, SerializationTypeCode elementTypeCode) namedArgValues = 1575if (namedArgValues is (_, isProperty: true, typeCode: SerializationTypeCode.Boolean, _)) 2204if (typeCode == SerializationTypeCode.String && isProperty && value.ValueInternal is string stringValue)
Symbols\Attributes\AttributeDescription.cs (22)
95public readonly SerializationTypeCode Underlying; 97public TypeHandleTargetInfo(string @namespace, string name, SerializationTypeCode underlying) 114new TypeHandleTargetInfo(system,"AttributeTargets", SerializationTypeCode.Int32) 115,new TypeHandleTargetInfo("System.Reflection","AssemblyNameFlags", SerializationTypeCode.Int32) 116,new TypeHandleTargetInfo(compilerServices,"MethodImplOptions", SerializationTypeCode.Int32) 117,new TypeHandleTargetInfo(interopServices,"CharSet", SerializationTypeCode.Int32) 118,new TypeHandleTargetInfo(interopServices,"LayoutKind", SerializationTypeCode.Int32) 119,new TypeHandleTargetInfo(interopServices,"UnmanagedType", SerializationTypeCode.Int32) 120,new TypeHandleTargetInfo(interopServices,"TypeLibTypeFlags", SerializationTypeCode.Int32) 121,new TypeHandleTargetInfo(interopServices,"ClassInterfaceType", SerializationTypeCode.Int32) 122,new TypeHandleTargetInfo(interopServices,"ComInterfaceType", SerializationTypeCode.Int32) 123,new TypeHandleTargetInfo(compilerServices,"CompilationRelaxations", SerializationTypeCode.Int32) 124,new TypeHandleTargetInfo("System.Diagnostics.DebuggableAttribute","DebuggingModes", SerializationTypeCode.Int32) 125,new TypeHandleTargetInfo("System.Security","SecurityCriticalScope", SerializationTypeCode.Int32) 126,new TypeHandleTargetInfo(interopServices,"CallingConvention", SerializationTypeCode.Int32) 127,new TypeHandleTargetInfo("System.Configuration.Assemblies","AssemblyHashAlgorithm", SerializationTypeCode.Int32) 128,new TypeHandleTargetInfo("System.EnterpriseServices","TransactionOption", SerializationTypeCode.Int32) 129,new TypeHandleTargetInfo("System.Security.Permissions","SecurityAction", SerializationTypeCode.Int32) 130,new TypeHandleTargetInfo(system,"Type", SerializationTypeCode.Type) 131,new TypeHandleTargetInfo("Windows.Foundation.Metadata","DeprecationType", SerializationTypeCode.Int32) 132,new TypeHandleTargetInfo("Windows.Foundation.Metadata","Platform", SerializationTypeCode.Int32) 133,new TypeHandleTargetInfo(interopServices,"ExtendedLayoutKind", SerializationTypeCode.Int32)
Microsoft.CodeAnalysis.CSharp (1)
Symbols\Attributes\SourceAttributeData.cs (1)
437case (byte)SerializationTypeCode.Type:
Microsoft.CodeAnalysis.VisualBasic (1)
Symbols\Attributes\SourceAttributeData.vb (1)
252Case CByte(SerializationTypeCode.Type)
System.Reflection.Emit (17)
System\Reflection\Emit\CustomAttributeWrapper.cs (17)
83Type fieldType = dataType == EnumType ? typeof(int) : ElementTypeToType((SerializationTypeCode)dataType); 149return DecodeCustomAttributeValue(ElementTypeToType((SerializationTypeCode)subtype), data, pos, out rpos); 157private static Type ElementTypeToType(SerializationTypeCode elementType) => 160SerializationTypeCode.Boolean => typeof(bool), 161SerializationTypeCode.Char => typeof(char), 162SerializationTypeCode.SByte => typeof(sbyte), 163SerializationTypeCode.Byte => typeof(byte), 164SerializationTypeCode.Int16 => typeof(short), 165SerializationTypeCode.UInt16 => typeof(ushort), 166SerializationTypeCode.Int32 => typeof(int), 167SerializationTypeCode.UInt32 => typeof(uint), 168SerializationTypeCode.Int64 => typeof(long), 169SerializationTypeCode.UInt64 => typeof(ulong), 170SerializationTypeCode.Single => typeof(float), 171SerializationTypeCode.Double => typeof(double), 172SerializationTypeCode.String => typeof(string), 173SerializationTypeCode.Type => typeof(string), // the type name written in string format
System.Reflection.Metadata (65)
System\Reflection\Metadata\BlobReader.cs (4)
543/// <returns><see cref="SerializationTypeCode.Invalid"/> if the encoding is invalid.</returns> 544public SerializationTypeCode ReadSerializationTypeCode() 549return SerializationTypeCode.Invalid; 552return unchecked((SerializationTypeCode)value);
System\Reflection\Metadata\Ecma335\CustomAttributeDecoder.cs (40)
150public SerializationTypeCode TypeCode; 151public SerializationTypeCode ElementTypeCode; 167TypeCode = (SerializationTypeCode)signatureTypeCode, 189info.TypeCode = SerializationTypeCode.TaggedObject; 197info.TypeCode = _provider.IsSystemType(info.Type) ? SerializationTypeCode.Type : (SerializationTypeCode)_provider.GetUnderlyingEnumType(info.Type); 250case SerializationTypeCode.Boolean: 251case SerializationTypeCode.Byte: 252case SerializationTypeCode.Char: 253case SerializationTypeCode.Double: 254case SerializationTypeCode.Int16: 255case SerializationTypeCode.Int32: 256case SerializationTypeCode.Int64: 257case SerializationTypeCode.SByte: 258case SerializationTypeCode.Single: 259case SerializationTypeCode.String: 260case SerializationTypeCode.UInt16: 261case SerializationTypeCode.UInt32: 262case SerializationTypeCode.UInt64: 266case SerializationTypeCode.Type: 270case SerializationTypeCode.TaggedObject: 274case SerializationTypeCode.SZArray: 287case SerializationTypeCode.Enum: 290info.TypeCode = (SerializationTypeCode)_provider.GetUnderlyingEnumType(info.Type); 302if (info.TypeCode == SerializationTypeCode.TaggedObject) 312case SerializationTypeCode.Boolean: 316case SerializationTypeCode.Byte: 320case SerializationTypeCode.Char: 324case SerializationTypeCode.Double: 328case SerializationTypeCode.Int16: 332case SerializationTypeCode.Int32: 336case SerializationTypeCode.Int64: 340case SerializationTypeCode.SByte: 344case SerializationTypeCode.Single: 348case SerializationTypeCode.UInt16: 352case SerializationTypeCode.UInt32: 356case SerializationTypeCode.UInt64: 360case SerializationTypeCode.String: 364case SerializationTypeCode.Type: 369case SerializationTypeCode.SZArray:
System\Reflection\Metadata\Ecma335\Encoding\BlobEncoders.cs (21)
788Builder.WriteByte((byte)SerializationTypeCode.TaggedObject); 808Builder.WriteByte((byte)SerializationTypeCode.SZArray); 809Builder.WriteByte((byte)SerializationTypeCode.TaggedObject); 814Builder.WriteByte((byte)SerializationTypeCode.SZArray); 828private void WriteTypeCode(SerializationTypeCode value) 833public void Boolean() => WriteTypeCode(SerializationTypeCode.Boolean); 834public void Char() => WriteTypeCode(SerializationTypeCode.Char); 835public void SByte() => WriteTypeCode(SerializationTypeCode.SByte); 836public void Byte() => WriteTypeCode(SerializationTypeCode.Byte); 837public void Int16() => WriteTypeCode(SerializationTypeCode.Int16); 838public void UInt16() => WriteTypeCode(SerializationTypeCode.UInt16); 839public void Int32() => WriteTypeCode(SerializationTypeCode.Int32); 840public void UInt32() => WriteTypeCode(SerializationTypeCode.UInt32); 841public void Int64() => WriteTypeCode(SerializationTypeCode.Int64); 842public void UInt64() => WriteTypeCode(SerializationTypeCode.UInt64); 843public void Single() => WriteTypeCode(SerializationTypeCode.Single); 844public void Double() => WriteTypeCode(SerializationTypeCode.Double); 845public void String() => WriteTypeCode(SerializationTypeCode.String); 864WriteTypeCode((SerializationTypeCode)type); 875WriteTypeCode(SerializationTypeCode.Type); 887WriteTypeCode(SerializationTypeCode.Enum);