public static FromReader ( MetadataHeader header, IBinaryStreamReader reader ) : |
||
header | MetadataHeader | |
reader | IBinaryStreamReader | |
return |
public static SecurityAttributeSignature FromReader(MetadataHeader header, IBinaryStreamReader reader)
{
var signature = new SecurityAttributeSignature()
{
StartOffset = reader.Position,
TypeName = reader.ReadSerString(),
};
reader.ReadCompressedUInt32();
uint argumentCount;
if (!reader.TryReadCompressedUInt32(out argumentCount))
return signature;
if (argumentCount == 0)
return signature;
for (int i = 0; i < argumentCount; i++)
signature.NamedArguments.Add(CustomAttributeNamedArgument.FromReader(header, reader));
return signature;
}
public static PermissionSetSignature FromReader(MetadataHeader header, IBinaryStreamReader reader) { var signature = new PermissionSetSignature() { StartOffset = reader.Position }; var signatureHeader = reader.ReadByte(); if (signatureHeader != '.') { throw new ArgumentException("Signature doesn't refer to a valid permission set signature."); } uint attributeCount; if (!reader.TryReadCompressedUInt32(out attributeCount)) { return(signature); } for (int i = 0; i < attributeCount; i++) { signature.Attributes.Add(SecurityAttributeSignature.FromReader(header, reader)); } return(signature); }