src\runtime\src\libraries\System.Private.CoreLib\src\System\Reflection\RuntimeCustomAttributeData.cs (86)
164internal static CustomAttributeEncoding TypeToCustomAttributeEncoding(RuntimeType type)
167return CustomAttributeEncoding.Int32;
170return CustomAttributeEncoding.Enum;
173return CustomAttributeEncoding.String;
176return CustomAttributeEncoding.Type;
179return CustomAttributeEncoding.Object;
182return CustomAttributeEncoding.Array;
185return CustomAttributeEncoding.Char;
188return CustomAttributeEncoding.Boolean;
191return CustomAttributeEncoding.Byte;
194return CustomAttributeEncoding.SByte;
197return CustomAttributeEncoding.Int16;
200return CustomAttributeEncoding.UInt16;
203return CustomAttributeEncoding.UInt32;
206return CustomAttributeEncoding.Int64;
209return CustomAttributeEncoding.UInt64;
212return CustomAttributeEncoding.Float;
215return CustomAttributeEncoding.Double;
219return CustomAttributeEncoding.Object;
222return CustomAttributeEncoding.Object;
225return CustomAttributeEncoding.Object;
228return CustomAttributeEncoding.Undefined;
292CustomAttributeEncoding.Field,
300CustomAttributeEncoding.Property,
471&& p.EncodedArgument.CustomAttributeType.EncodedType != CustomAttributeEncoding.Undefined)
486&& p.EncodedArgument.CustomAttributeType.EncodedType != CustomAttributeEncoding.Undefined)
512private static Type CustomAttributeEncodingToType(CustomAttributeEncoding encodedType)
516CustomAttributeEncoding.Enum => typeof(Enum),
517CustomAttributeEncoding.Int32 => typeof(int),
518CustomAttributeEncoding.String => typeof(string),
519CustomAttributeEncoding.Type => typeof(Type),
520CustomAttributeEncoding.Array => typeof(Array),
521CustomAttributeEncoding.Char => typeof(char),
522CustomAttributeEncoding.Boolean => typeof(bool),
523CustomAttributeEncoding.SByte => typeof(sbyte),
524CustomAttributeEncoding.Byte => typeof(byte),
525CustomAttributeEncoding.Int16 => typeof(short),
526CustomAttributeEncoding.UInt16 => typeof(ushort),
527CustomAttributeEncoding.UInt32 => typeof(uint),
528CustomAttributeEncoding.Int64 => typeof(long),
529CustomAttributeEncoding.UInt64 => typeof(ulong),
530CustomAttributeEncoding.Float => typeof(float),
531CustomAttributeEncoding.Double => typeof(double),
532CustomAttributeEncoding.Object => typeof(object),
537private static object EncodedValueToRawValue(PrimitiveValue val, CustomAttributeEncoding encodedType)
541CustomAttributeEncoding.Boolean => (byte)val.Byte4 != 0,
542CustomAttributeEncoding.Char => (char)val.Byte4,
543CustomAttributeEncoding.Byte => (byte)val.Byte4,
544CustomAttributeEncoding.SByte => (sbyte)val.Byte4,
545CustomAttributeEncoding.Int16 => (short)val.Byte4,
546CustomAttributeEncoding.UInt16 => (ushort)val.Byte4,
547CustomAttributeEncoding.Int32 => val.Byte4,
548CustomAttributeEncoding.UInt32 => (uint)val.Byte4,
549CustomAttributeEncoding.Int64 => val.Byte8,
550CustomAttributeEncoding.UInt64 => (ulong)val.Byte8,
551CustomAttributeEncoding.Float => BitConverter.Int32BitsToSingle(val.Byte4),
552CustomAttributeEncoding.Double => BitConverter.Int64BitsToDouble(val.Byte8),
565CustomAttributeEncoding encodedType = encodedArg.CustomAttributeType.EncodedType;
567if (encodedType == CustomAttributeEncoding.Undefined)
570if (encodedType == CustomAttributeEncoding.Enum)
575else if (encodedType == CustomAttributeEncoding.String)
580else if (encodedType == CustomAttributeEncoding.Type)
593else if (encodedType == CustomAttributeEncoding.Array)
598if (encodedType == CustomAttributeEncoding.Enum)
793if (namedArgType.EncodedType != CustomAttributeEncoding.Object)
801if (argType.EncodedType is CustomAttributeEncoding.Array
802&& namedArgType.EncodedArrayType is not CustomAttributeEncoding.Object
816if (namedArgType.EncodedType is CustomAttributeEncoding.Enum
817|| (namedArgType.EncodedType is CustomAttributeEncoding.Array
818&& namedArgType.EncodedArrayType is CustomAttributeEncoding.Enum))
859internal sealed class CustomAttributeNamedParameter(MemberInfo memberInfo, CustomAttributeEncoding fieldOrProperty, CustomAttributeType type)
863public CustomAttributeEncoding FieldOrProperty => fieldOrProperty;
870CustomAttributeEncoding encodedType,
871CustomAttributeEncoding encodedArrayType,
872CustomAttributeEncoding encodedEnumType,
884CustomAttributeEncoding encodedType = RuntimeCustomAttributeData.TypeToCustomAttributeEncoding(parameterType);
885CustomAttributeEncoding encodedArrayType = CustomAttributeEncoding.Undefined;
886CustomAttributeEncoding encodedEnumType = CustomAttributeEncoding.Undefined;
889if (encodedType == CustomAttributeEncoding.Array)
895if (encodedType == CustomAttributeEncoding.Enum
896|| encodedArrayType == CustomAttributeEncoding.Enum)
908public CustomAttributeEncoding EncodedType { get; }
909public CustomAttributeEncoding EncodedEnumType { get; }
910public CustomAttributeEncoding EncodedArrayType { get; }