private MarshalAsDescriptor GetMarshalAsDescriptor(Parameter parameter) { if ((parameter.Attributes & ParameterAttributes.HasFieldMarshal) == ParameterAttributes.HasFieldMarshal) { MetadataReader metadataReader = MetadataReader; BlobReader marshalAsReader = metadataReader.GetBlobReader(parameter.GetMarshallingDescriptor()); EcmaSignatureParser parser = new EcmaSignatureParser(Module, marshalAsReader); return(parser.ParseMarshalAsDescriptor()); } return(null); }
private MarshalAsDescriptor GetMarshalAsDescriptor(FieldDefinition fieldDefinition) { if ((fieldDefinition.Attributes & FieldAttributes.HasFieldMarshal) == FieldAttributes.HasFieldMarshal) { MetadataReader metadataReader = MetadataReader; BlobReader marshalAsReader = metadataReader.GetBlobReader(fieldDefinition.GetMarshallingDescriptor()); EcmaSignatureParser parser = new EcmaSignatureParser(EcmaModule, marshalAsReader); MarshalAsDescriptor marshalAs = parser.ParseMarshalAsDescriptor(); Debug.Assert(marshalAs != null); return(marshalAs); } return(null); }
private MarshalAsDescriptor GetMarshalAsDescriptor(Parameter parameter) { if ((parameter.Attributes & ParameterAttributes.HasFieldMarshal) == ParameterAttributes.HasFieldMarshal) { MetadataReader metadataReader = MetadataReader; BlobReader marshalAsReader = metadataReader.GetBlobReader(parameter.GetMarshallingDescriptor()); EcmaSignatureParser parser = new EcmaSignatureParser(Module, marshalAsReader, NotFoundBehavior.Throw); MarshalAsDescriptor marshalAs = parser.ParseMarshalAsDescriptor(); Debug.Assert(marshalAs != null); return(marshalAs); } return(null); }
public override MarshalAsDescriptor GetMarshalAsDescriptor() { MetadataReader reader = MetadataReader; FieldDefinition definition = reader.GetFieldDefinition(_handle); if ((definition.Attributes & FieldAttributes.HasFieldMarshal) != 0) { BlobReader marshalAsReader = reader.GetBlobReader(definition.GetMarshallingDescriptor()); EcmaSignatureParser parser = new EcmaSignatureParser(_type.EcmaModule, marshalAsReader, NotFoundBehavior.Throw); return(parser.ParseMarshalAsDescriptor()); } return(null); }