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

◆ DecodeNamedArguments()

ImmutableArray< CustomAttributeNamedArgument< TType > > System.Reflection.Metadata.Ecma335.CustomAttributeDecoder< TType >.DecodeNamedArguments ( ref BlobReader valueReader)
inlineprivate

Definition at line 74 of file CustomAttributeDecoder.cs.

75 {
76 int num = valueReader.ReadUInt16();
77 if (num == 0)
78 {
80 }
81 ImmutableArray<CustomAttributeNamedArgument<TType>>.Builder builder = ImmutableArray.CreateBuilder<CustomAttributeNamedArgument<TType>>(num);
82 for (int i = 0; i < num; i++)
83 {
84 CustomAttributeNamedArgumentKind customAttributeNamedArgumentKind = (CustomAttributeNamedArgumentKind)valueReader.ReadSerializationTypeCode();
85 if (customAttributeNamedArgumentKind != CustomAttributeNamedArgumentKind.Field && customAttributeNamedArgumentKind != CustomAttributeNamedArgumentKind.Property)
86 {
87 throw new BadImageFormatException();
88 }
89 ArgumentTypeInfo info = DecodeNamedArgumentType(ref valueReader);
90 string name = valueReader.ReadSerializedString();
91 CustomAttributeTypedArgument<TType> customAttributeTypedArgument = DecodeArgument(ref valueReader, info);
92 builder.Add(new CustomAttributeNamedArgument<TType>(name, customAttributeNamedArgumentKind, customAttributeTypedArgument.Type, customAttributeTypedArgument.Value));
93 }
94 return builder.MoveToImmutable();
95 }
static readonly ImmutableArray< T > Empty
CustomAttributeTypedArgument< TType > DecodeArgument(ref BlobReader valueReader, ArgumentTypeInfo info)
ArgumentTypeInfo DecodeNamedArgumentType(ref BlobReader valueReader, bool isElementType=false)

References System.Reflection.Metadata.Ecma335.CustomAttributeDecoder< TType >.DecodeArgument(), System.Reflection.Metadata.Ecma335.CustomAttributeDecoder< TType >.DecodeNamedArgumentType(), System.Collections.Immutable.ImmutableArray< T >.Empty, System.info, System.Reflection.Metadata.CustomAttributeTypedArgument< TType >.Type, and System.Reflection.Metadata.CustomAttributeTypedArgument< TType >.Value.

Referenced by System.Reflection.Metadata.Ecma335.CustomAttributeDecoder< TType >.DecodeValue().