public IEnumerable <IAttribute> GetAttributes() { var b = new AttributeListBuilder(module); var metadata = module.metadata; var parameter = metadata.GetParameter(handle); if (IsOptional && !HasConstantValueInSignature) { b.Add(KnownAttribute.Optional); } if (!IsOut && !IsIn) { if ((attributes & ParameterAttributes.In) == ParameterAttributes.In) { b.Add(KnownAttribute.In); } if ((attributes & ParameterAttributes.Out) == ParameterAttributes.Out) { b.Add(KnownAttribute.Out); } } b.Add(parameter.GetCustomAttributes(), SymbolKind.Parameter); b.AddMarshalInfo(parameter.GetMarshallingDescriptor()); return(b.Build()); }
public IEnumerable <IAttribute> GetAttributes() { var b = new AttributeListBuilder(module); var metadata = module.metadata; var fieldDef = metadata.GetFieldDefinition(handle); // FieldOffsetAttribute int offset = fieldDef.GetOffset(); if (offset != -1) { b.Add(KnownAttribute.FieldOffset, KnownTypeCode.Int32, offset); } // NonSerializedAttribute if ((fieldDef.Attributes & FieldAttributes.NotSerialized) != 0) { b.Add(KnownAttribute.NonSerialized); } // SpecialName if ((fieldDef.Attributes & (FieldAttributes.SpecialName | FieldAttributes.RTSpecialName)) == FieldAttributes.SpecialName) { b.Add(KnownAttribute.SpecialName); } b.AddMarshalInfo(fieldDef.GetMarshallingDescriptor()); b.Add(fieldDef.GetCustomAttributes(), SymbolKind.Field); return(b.Build()); }
public IEnumerable <IAttribute> GetReturnTypeAttributes() { var b = new AttributeListBuilder(module); var metadata = module.metadata; var methodDefinition = metadata.GetMethodDefinition(handle); var parameters = methodDefinition.GetParameters(); if (parameters.Count > 0) { var retParam = metadata.GetParameter(parameters.First()); if (retParam.SequenceNumber == 0) { b.AddMarshalInfo(retParam.GetMarshallingDescriptor()); b.Add(retParam.GetCustomAttributes(), symbolKind); } } return(b.Build()); }
public IEnumerable <IAttribute> GetAttributes() { var b = new AttributeListBuilder(module); var metadata = module.metadata; var parameter = metadata.GetParameter(handle); if (!IsOut) { if ((attributes & ParameterAttributes.In) == ParameterAttributes.In) { b.Add(KnownAttribute.In); } if ((attributes & ParameterAttributes.Out) == ParameterAttributes.Out) { b.Add(KnownAttribute.Out); } } b.Add(parameter.GetCustomAttributes()); b.AddMarshalInfo(parameter.GetMarshallingDescriptor()); return(b.Build()); }