Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
 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));
         }
     }
 }
Exemplo n.º 3
0
        /// <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());
        }