/// <summary> /// Gets the list of all module attributes in the project. /// </summary> public IEnumerable <IAttribute> GetModuleAttributes() { var b = new AttributeListBuilder(this); b.Add(metadata.GetCustomAttributes(Handle.ModuleDefinition), SymbolKind.Module); if (!metadata.IsAssembly) { AddTypeForwarderAttributes(ref b); } return(b.Build()); }
void AddTypeForwarderAttributes(ref AttributeListBuilder b) { foreach (ExportedTypeHandle t in metadata.ExportedTypes) { var type = metadata.GetExportedType(t); if (type.IsForwarder) { b.Add(KnownAttribute.TypeForwardedTo, KnownTypeCode.Type, ResolveForwardedType(type)); } } }
/// <summary> /// Gets the list of all assembly attributes in the project. /// </summary> public IEnumerable <IAttribute> GetAssemblyAttributes() { var b = new AttributeListBuilder(this); if (metadata.IsAssembly) { var assembly = metadata.GetAssemblyDefinition(); b.Add(metadata.GetCustomAttributes(Handle.AssemblyDefinition), SymbolKind.Module); b.AddSecurityAttributes(assembly.GetDeclarativeSecurityAttributes()); // AssemblyVersionAttribute if (assembly.Version != null) { b.Add(KnownAttribute.AssemblyVersion, KnownTypeCode.String, assembly.Version.ToString()); } AddTypeForwarderAttributes(ref b); } return(b.Build()); }