System.Reflection.Metadata 11.0.0-rc.2.26504.105

About

This package provides a low-level .NET (ECMA-335) metadata reader and writer. It's geared for performance and is the ideal choice for building higher-level libraries that intend to provide their own object model, such as compilers. The metadata format is defined by the ECMA-335 - Common Language Infrastructure (CLI) specification and its amendments.

The System.Reflection.Metadata library is included in the .NET Runtime shared framework. The package can be installed when you need to use it in other target frameworks.

How to Use

The following example shows how to read assembly information using PEReader and MetadataReader.

using System;
using System.IO;
using System.Reflection.Metadata;
using System.Reflection.PortableExecutable;

class Program
{
    static void Main()
    {
        // Open the Portable Executable (PE) file
        using var fs = new FileStream("Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        using var peReader = new PEReader(fs);

        // Display PE header information
        PEHeader header = peReader.PEHeaders.PEHeader;
        Console.WriteLine($"Image base:     0x{header.ImageBase:X}");
        Console.WriteLine($"File alignment: 0x{header.FileAlignment:X}");
        Console.WriteLine($"Subsystem:      {header.Subsystem}");

        // Display .NET metadata information
        if (!peReader.HasMetadata)
        {
            Console.WriteLine("Image does not contain .NET metadata");
            return;
        }

        MetadataReader mr = peReader.GetMetadataReader();
        AssemblyDefinition ad = mr.GetAssemblyDefinition();
        Console.WriteLine($"Assembly name:  {ad.GetAssemblyName().ToString()}");
        Console.WriteLine();
        Console.WriteLine("Assembly attributes:");

        foreach (CustomAttributeHandle attrHandle in ad.GetCustomAttributes())
        {
            CustomAttribute attr = mr.GetCustomAttribute(attrHandle);

            // Display the attribute type full name
            if (attr.Constructor.Kind == HandleKind.MethodDefinition)
            {
                MethodDefinition mdef = mr.GetMethodDefinition((MethodDefinitionHandle)attr.Constructor);
                TypeDefinition tdef = mr.GetTypeDefinition(mdef.GetDeclaringType());
                Console.WriteLine($"{mr.GetString(tdef.Namespace)}.{mr.GetString(tdef.Name)}");
            }
            else if (attr.Constructor.Kind == HandleKind.MemberReference)
            {
                MemberReference mref = mr.GetMemberReference((MemberReferenceHandle)attr.Constructor);

                if (mref.Parent.Kind == HandleKind.TypeReference)
                {
                    TypeReference tref = mr.GetTypeReference((TypeReferenceHandle)mref.Parent);
                    Console.WriteLine($"{mr.GetString(tref.Namespace)}.{mr.GetString(tref.Name)}");
                }
                else if (mref.Parent.Kind == HandleKind.TypeDefinition)
                {
                    TypeDefinition tdef = mr.GetTypeDefinition((TypeDefinitionHandle)mref.Parent);
                    Console.WriteLine($"{mr.GetString(tdef.Namespace)}.{mr.GetString(tdef.Name)}");
                }
            }
        }
    }
}

Main Types

The main types provided by this library are:

  • System.Reflection.Metadata.MetadataReader
  • System.Reflection.PortableExecutable.PEReader
  • System.Reflection.Metadata.Ecma335.MetadataBuilder
  • System.Reflection.PortableExecutable.PEBuilder
  • System.Reflection.PortableExecutable.ManagedPEBuilder

Additional Documentation

Feedback & Contributing

System.Reflection.Metadata is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Showing the top 20 packages that depend on System.Reflection.Metadata.

Packages Downloads
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/5905d757a89126ebbcdb383b1a10cadda8c6fdc3.
85
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/b90347a69117be7181e2f03a991790634981eddb.
85
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. Supported Platforms: - .NET Framework 4.5 - Windows 8 - Portable Class Libraries
83
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/2c94423e50a72aea8a4962d8722641d06bc88b13
82
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/49a655e40d938aa74b1d149b407c30cbb2287d71.
82
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/c94e32157c34fa777f674242cd08cfdc98737d62.
81
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/154af84a603094b52bd08b3366c4448f7481af52.
81
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/c3b512958589fecf9e847a73db492cfc92f71a69.
80
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/ce8ac3f71fa4c73b78cf8218d58b322bdbdfa1c9.
80
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/5f00f4d6ffb242a337e21a196aab0593891e430e.
80
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/1cb14195ed43eefdf7f9de59140ff6db70eea76e.
79
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/fb3f812a3e4b7534bef784fa2df1c21d1f67864d.
79
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/20a4c9adb4fd8317c968157ef11add1fbceccacc.
79
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it.
79
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/572b1f0e0da95fd92af710ee58c95e2257cb08e3.
79
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. Supported Platforms: - .NET Framework 4.5 - Windows 8 - Portable Class Libraries
78
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. This package was built from the source at https://github.com/dotnet/roslyn/commit/ab56a4a6c32268d925014a3e45ddce61fba715cd
78
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/e873e69306527a0424e97af2985370556f474019
78
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/231aeb8be8357239499d45c0574e5a9a8c9174f0.
78
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/7d47461d2ddd32defbc51c2cf0e75a3fef16c3d7.
78

https://go.microsoft.com/fwlink/?LinkID=799421

.NET 10.0

.NET 11.0

  • No dependencies.

.NET Framework 4.6.2

.NET Standard 2.0

Version Downloads Last updated
11.0.0-rc.3.26522.148 2 10/27/2026
11.0.0-rc.2.26504.105 6 10/18/2026
11.0.0-rc.1.26425.128 16 09/13/2026
11.0.0-preview.7.26381.103 21 08/11/2026
11.0.0-preview.6.26359.118 23 07/16/2026
11.0.0-preview.5.26302.115 24 06/12/2026
11.0.0-preview.4.26230.115 36 05/14/2026
11.0.0-preview.3.26207.106 49 04/16/2026
11.0.0-preview.2.26159.112 42 03/11/2026
11.0.0-preview.1.26104.118 51 02/13/2026
10.0.14 2 10/28/2026
10.0.13 6 10/19/2026
10.0.12 11 09/13/2026
10.0.11 18 08/11/2026
10.0.10 32 07/16/2026
10.0.9 36 06/12/2026
10.0.8 38 05/14/2026
10.0.7 43 04/24/2026
10.0.6 46 04/16/2026
10.0.5 46 03/13/2026
10.0.4 43 03/11/2026
10.0.3 45 02/13/2026
10.0.2 51 01/18/2026
10.0.1 52 12/14/2025
10.0.0 53 11/15/2025
10.0.0-rc.2.25502.107 61 10/17/2025
10.0.0-rc.1.25451.107 59 09/20/2025
10.0.0-preview.7.25380.108 63 09/05/2025
10.0.0-preview.6.25358.103 69 09/05/2025
10.0.0-preview.5.25277.114 69 09/05/2025
10.0.0-preview.4.25258.110 69 09/05/2025
10.0.0-preview.3.25171.5 74 09/05/2025
10.0.0-preview.2.25163.2 66 09/05/2025
10.0.0-preview.1.25080.5 69 09/05/2025
9.0.22 2 10/28/2026
9.0.21 6 10/19/2026
9.0.20 11 09/13/2026
9.0.19 23 08/11/2026
9.0.18 27 07/16/2026
9.0.17 30 06/12/2026
9.0.16 38 05/14/2026
9.0.15 45 04/16/2026
9.0.14 42 03/11/2026
9.0.13 54 02/13/2026
9.0.12 47 01/19/2026
9.0.11 57 11/16/2025
9.0.10 70 10/19/2025
9.0.9 65 09/21/2025
9.0.8 75 09/05/2025
9.0.7 71 09/05/2025
9.0.6 61 09/05/2025
9.0.5 66 09/05/2025
9.0.4 68 09/05/2025
9.0.3 70 09/05/2025
9.0.2 60 09/05/2025
9.0.1 62 09/05/2025
9.0.0 73 09/05/2025
9.0.0-rc.2.24473.5 62 09/05/2025
9.0.0-rc.1.24431.7 61 09/05/2025
9.0.0-preview.7.24405.7 64 09/05/2025
9.0.0-preview.6.24327.7 63 09/05/2025
9.0.0-preview.5.24306.7 65 09/05/2025
9.0.0-preview.4.24266.19 64 09/05/2025
9.0.0-preview.3.24172.9 65 09/05/2025
9.0.0-preview.2.24128.5 62 09/05/2025
9.0.0-preview.1.24080.9 69 09/05/2025
8.0.1 70 09/05/2025
8.0.0 70 09/05/2025
8.0.0-rc.2.23479.6 73 09/05/2025
8.0.0-rc.1.23419.4 63 09/05/2025
8.0.0-preview.7.23375.6 61 09/05/2025
8.0.0-preview.6.23329.7 73 09/05/2025
8.0.0-preview.5.23280.8 64 09/05/2025
8.0.0-preview.4.23259.5 69 09/05/2025
8.0.0-preview.3.23174.8 67 09/05/2025
8.0.0-preview.2.23128.3 68 09/05/2025
8.0.0-preview.1.23110.8 69 09/05/2025
7.0.2 67 09/05/2025
7.0.1 67 09/05/2025
7.0.0 64 09/05/2025
7.0.0-rc.2.22472.3 62 09/05/2025
7.0.0-rc.1.22426.10 64 09/05/2025
7.0.0-preview.7.22375.6 73 09/05/2025
7.0.0-preview.6.22324.4 64 09/05/2025
7.0.0-preview.5.22301.12 65 09/05/2025
7.0.0-preview.4.22229.4 69 09/05/2025
7.0.0-preview.3.22175.4 65 09/05/2025
7.0.0-preview.2.22152.2 63 09/05/2025
7.0.0-preview.1.22076.8 75 09/05/2025
6.0.2 70 09/05/2025
6.0.1 68 09/05/2025
6.0.0 74 09/05/2025
6.0.0-rc.2.21480.5 66 09/05/2025
6.0.0-rc.1.21451.13 63 09/05/2025
6.0.0-preview.7.21377.19 66 09/05/2025
6.0.0-preview.6.21352.12 60 09/05/2025
6.0.0-preview.5.21301.5 65 09/05/2025
6.0.0-preview.4.21253.7 66 09/05/2025
6.0.0-preview.3.21201.4 75 09/05/2025
6.0.0-preview.2.21154.6 62 09/05/2025
6.0.0-preview.1.21102.12 69 09/05/2025
5.0.0 62 09/05/2025
5.0.0-rc.2.20475.5 68 09/05/2025
5.0.0-rc.1.20451.14 71 09/05/2025
5.0.0-preview.8.20407.11 73 09/05/2025
5.0.0-preview.7.20364.11 61 09/05/2025
5.0.0-preview.6.20305.6 71 09/05/2025
5.0.0-preview.5.20278.1 63 09/05/2025
5.0.0-preview.4.20251.6 60 09/05/2025
5.0.0-preview.3.20214.6 65 09/05/2025
5.0.0-preview.2.20160.6 68 09/05/2025
5.0.0-preview.1.20120.5 62 09/05/2025
1.8.1 59 09/05/2025
1.8.0 69 09/05/2025
1.8.0-preview3.19551.4 65 09/05/2025
1.8.0-preview2.19523.17 62 09/05/2025
1.8.0-preview1.19504.10 71 09/05/2025
1.7.0 63 09/05/2025
1.7.0-rc1.19456.4 68 09/05/2025
1.7.0-preview9.19421.4 59 09/05/2025
1.7.0-preview9.19416.11 64 09/05/2025
1.7.0-preview8.19405.3 62 09/05/2025
1.7.0-preview7.19362.9 61 09/05/2025
1.7.0-preview6.19303.8 67 09/05/2025
1.7.0-preview6.19264.9 71 09/05/2025
1.7.0-preview5.19224.8 67 09/05/2025
1.7.0-preview4.19212.13 71 09/05/2025
1.7.0-preview3.19128.7 76 09/05/2025
1.7.0-preview.19073.11 72 09/05/2025
1.7.0-preview.18571.3 62 09/05/2025
1.6.0 66 09/05/2025
1.6.0-rc1 74 09/05/2025
1.6.0-preview2-26406-04 63 09/05/2025
1.6.0-preview1-26216-02 61 09/05/2025
1.5.0 65 09/05/2025
1.5.0-preview2-25405-01 61 09/05/2025
1.5.0-preview1-25305-02 61 09/05/2025
1.4.2 63 09/05/2025
1.4.1 65 09/05/2025
1.4.1-preview1-24530-04 67 09/05/2025
1.4.1-beta-24430-01 66 09/05/2025
1.4.1-beta-24227-04 67 09/05/2025
1.3.0 73 09/05/2025
1.3.0-rc2-24027 63 09/05/2025
1.2.1-beta-23918 60 09/05/2025
1.2.0 67 09/05/2025
1.2.0-rc3-23811 66 09/05/2025
1.2.0-rc2-23826 64 09/05/2025
1.1.1-beta-23516 69 09/05/2025
1.1.0 69 09/05/2025
1.1.0-alpha-00015 67 09/05/2025
1.1.0-alpha-00014 67 09/05/2025
1.1.0-alpha-00012 64 09/05/2025
1.1.0-alpha-00009 72 09/05/2025
1.0.23-beta-23409 68 09/05/2025
1.0.23-beta-23225 65 09/05/2025
1.0.22 65 09/05/2025
1.0.22-beta-23109 66 09/05/2025
1.0.22-beta-23019 75 09/05/2025
1.0.21 69 09/05/2025
1.0.19-rc 65 09/05/2025
1.0.18-beta 67 09/05/2025
1.0.17-beta 70 09/05/2025