System.Reflection.Metadata 7.0.1

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 built-in as part of the shared framework in .NET Runtime. The package can be installed when you need to use it in other target frameworks.

For more information, see the documentation:

Example

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.ToString("X")}");
        Console.WriteLine($"File alignment: 0x{header.FileAlignment.ToString("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)}");
                }
            }
        }
    }
}

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

Packages Downloads
System.Diagnostics.StackTrace
Provides the System.Diagnostics.StackTrace class, which allows interaction with local and remote processes. Commonly Used Types: System.Diagnostics.StackFrame System.Diagnostics.StackTrace When using NuGet 3.x this package requires at least version 3.4.
8
Microsoft.CodeAnalysis.CSharp
.NET Compiler Platform ("Roslyn") support for C#, Microsoft.CodeAnalysis.CSharp.dll. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/35d9211b841e7613c1d2f8f5af6d628ace696c4c.
7
System.Diagnostics.StackTrace
Provides the System.Diagnostics.StackTrace class, which allows interaction with local and remote processes. Commonly Used Types: System.Diagnostics.StackFrame System.Diagnostics.StackTrace When using NuGet 3.x this package requires at least version 3.4.
6
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.
6
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
6
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/8de9e4b2beba5b7c0edd6f1e6a4f192a51fdc872.
6
Microsoft.CodeAnalysis.Compilers
Compiler layer of the .NET Compiler Platform ("Roslyn"). Install this package to get both C# and Visual Basic support. If you want just support for one language, install Microsoft.CodeAnalysis.CSharp or Microsoft.CodeAnalysis.VisualBasic. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/35d9211b841e7613c1d2f8f5af6d628ace696c4c.
6
System.Diagnostics.FileVersionInfo
Provides the System.Diagnostics.FileVersionInfo class, which allows access to Win32 version resource information for a physical file on disk. Commonly Used Types: System.Diagnostics.FileVersionInfo When using NuGet 3.x this package requires at least version 3.4.
6
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.
6
Microsoft.CodeAnalysis.Compilers
Compiler layer of the .NET Compiler Platform ("Roslyn"). Install this package to get both C# and Visual Basic support. If you want just support for one language, install Microsoft.CodeAnalysis.CSharp or Microsoft.CodeAnalysis.VisualBasic. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/e482b6e281d7db727fcb086ebbfae44dcba82c6d.
6
Microsoft.CodeAnalysis.CSharp
.NET Compiler Platform ("Roslyn") support for C#, Microsoft.CodeAnalysis.CSharp.dll. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/fa72fa61b0d822ea8a3fbeb96f668340419ab5cd.
6
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.
6
System.Diagnostics.StackTrace
Provides the System.Diagnostics.StackTrace class, which allows interaction with local and remote processes. Commonly Used Types: System.Diagnostics.StackFrame System.Diagnostics.StackTrace When using NuGet 3.x this package requires at least version 3.4.
5
Microsoft.NETCore
Provides a set of packages that can be used when building portable libraries on .NETCore based platforms.
5
Microsoft.CodeAnalysis.CSharp
.NET Compiler Platform ("Roslyn") support for C#, Microsoft.CodeAnalysis.CSharp.dll. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/c0573ed0a7dc3e3b4d2e70da47f97cc51a35524f.
5
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/6c4a46a31302167b425d5e0a31ea83c9a9aa1d09.
5
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
5

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

.NET Framework 4.6.2

.NET 6.0

.NET 7.0

.NET Standard 2.0

Version Downloads Last updated
11.0.0-rc.1.26425.128 7 09/10/2026
11.0.0-preview.7.26381.103 6 09/01/2026
11.0.0-preview.6.26359.118 6 09/01/2026
11.0.0-preview.5.26302.115 6 09/01/2026
11.0.0-preview.4.26230.115 6 09/01/2026
11.0.0-preview.3.26207.106 4 09/01/2026
11.0.0-preview.2.26159.112 6 09/01/2026
11.0.0-preview.1.26104.118 6 09/01/2026
10.0.12 6 09/10/2026
10.0.11 6 09/01/2026
10.0.10 7 09/01/2026
10.0.9 6 09/01/2026
10.0.8 6 09/01/2026
10.0.7 5 09/01/2026
10.0.6 6 09/01/2026
10.0.5 6 09/01/2026
10.0.4 6 09/01/2026
10.0.3 5 09/01/2026
10.0.2 7 09/01/2026
10.0.1 6 09/01/2026
10.0.0 7 09/01/2026
10.0.0-rc.2.25502.107 5 09/01/2026
10.0.0-rc.1.25451.107 6 09/01/2026
10.0.0-preview.7.25380.108 5 09/01/2026
10.0.0-preview.6.25358.103 5 09/01/2026
10.0.0-preview.5.25277.114 5 09/01/2026
10.0.0-preview.4.25258.110 6 09/01/2026
10.0.0-preview.3.25171.5 6 09/01/2026
10.0.0-preview.2.25163.2 6 09/01/2026
10.0.0-preview.1.25080.5 6 09/01/2026
9.0.20 5 09/10/2026
9.0.19 6 09/01/2026
9.0.18 3 09/01/2026
9.0.17 7 09/01/2026
9.0.16 5 09/01/2026
9.0.15 5 09/01/2026
9.0.14 3 09/01/2026
9.0.13 6 09/01/2026
9.0.12 6 09/01/2026
9.0.11 6 09/01/2026
9.0.10 3 09/01/2026
9.0.9 3 09/01/2026
9.0.8 6 09/01/2026
9.0.7 3 09/01/2026
9.0.6 6 09/01/2026
9.0.5 4 09/01/2026
9.0.4 6 09/01/2026
9.0.3 4 09/01/2026
9.0.2 4 09/01/2026
9.0.1 5 09/01/2026
9.0.0 4 09/01/2026
9.0.0-rc.2.24473.5 4 09/01/2026
9.0.0-rc.1.24431.7 7 09/01/2026
9.0.0-preview.7.24405.7 4 09/01/2026
9.0.0-preview.6.24327.7 6 09/01/2026
9.0.0-preview.5.24306.7 3 09/01/2026
9.0.0-preview.4.24266.19 3 09/01/2026
9.0.0-preview.3.24172.9 3 09/01/2026
9.0.0-preview.2.24128.5 4 09/01/2026
9.0.0-preview.1.24080.9 4 09/01/2026
8.0.1 4 09/01/2026
8.0.0 5 09/01/2026
8.0.0-rc.2.23479.6 4 09/01/2026
8.0.0-rc.1.23419.4 5 09/01/2026
8.0.0-preview.7.23375.6 5 09/01/2026
8.0.0-preview.6.23329.7 3 09/01/2026
8.0.0-preview.5.23280.8 4 09/01/2026
8.0.0-preview.4.23259.5 4 09/01/2026
8.0.0-preview.3.23174.8 4 09/01/2026
8.0.0-preview.2.23128.3 4 09/01/2026
8.0.0-preview.1.23110.8 3 09/01/2026
7.0.2 4 09/01/2026
7.0.1 4 09/01/2026
7.0.0 4 09/01/2026
7.0.0-rc.2.22472.3 4 09/01/2026
7.0.0-rc.1.22426.10 5 09/01/2026
7.0.0-preview.7.22375.6 4 09/01/2026
7.0.0-preview.6.22324.4 3 09/01/2026
7.0.0-preview.5.22301.12 4 09/01/2026
7.0.0-preview.4.22229.4 4 09/01/2026
7.0.0-preview.3.22175.4 4 09/01/2026
7.0.0-preview.2.22152.2 5 09/01/2026
7.0.0-preview.1.22076.8 4 09/01/2026
6.0.2 5 09/01/2026
6.0.1 6 09/01/2026
6.0.0 5 09/01/2026
6.0.0-rc.2.21480.5 6 09/01/2026
6.0.0-rc.1.21451.13 6 09/01/2026
6.0.0-preview.7.21377.19 5 09/01/2026
6.0.0-preview.6.21352.12 5 09/01/2026
6.0.0-preview.5.21301.5 6 09/01/2026
6.0.0-preview.4.21253.7 7 09/01/2026
6.0.0-preview.3.21201.4 7 09/01/2026
6.0.0-preview.2.21154.6 6 09/01/2026
6.0.0-preview.1.21102.12 5 09/01/2026
5.0.0 5 09/01/2026
5.0.0-rc.2.20475.5 6 09/01/2026
5.0.0-rc.1.20451.14 6 09/01/2026
5.0.0-preview.8.20407.11 5 09/01/2026
5.0.0-preview.7.20364.11 8 09/01/2026
5.0.0-preview.6.20305.6 5 09/01/2026
5.0.0-preview.5.20278.1 6 09/01/2026
5.0.0-preview.4.20251.6 6 09/01/2026
5.0.0-preview.3.20214.6 6 09/01/2026
5.0.0-preview.2.20160.6 5 09/01/2026
5.0.0-preview.1.20120.5 5 09/01/2026
1.8.1 6 09/01/2026
1.8.0 6 09/01/2026
1.8.0-preview3.19551.4 6 09/01/2026
1.8.0-preview2.19523.17 6 09/01/2026
1.8.0-preview1.19504.10 6 09/01/2026
1.7.0 6 09/01/2026
1.7.0-rc1.19456.4 5 09/01/2026
1.7.0-preview9.19421.4 6 09/01/2026
1.7.0-preview9.19416.11 5 09/01/2026
1.7.0-preview8.19405.3 6 09/01/2026
1.7.0-preview7.19362.9 6 09/01/2026
1.7.0-preview6.19303.8 6 09/01/2026
1.7.0-preview6.19264.9 6 09/01/2026
1.7.0-preview5.19224.8 6 09/01/2026
1.7.0-preview4.19212.13 5 09/01/2026
1.7.0-preview3.19128.7 6 09/01/2026
1.7.0-preview.19073.11 7 09/01/2026
1.7.0-preview.18571.3 6 09/01/2026
1.6.0 6 09/01/2026
1.6.0-rc1 7 09/01/2026
1.6.0-preview2-26406-04 6 09/01/2026
1.6.0-preview1-26216-02 6 09/01/2026
1.5.0 8 09/01/2026
1.5.0-preview2-25405-01 5 09/01/2026
1.5.0-preview1-25305-02 6 09/01/2026
1.4.2 7 09/01/2026
1.4.1 5 09/01/2026
1.4.1-preview1-24530-04 6 09/01/2026
1.4.1-beta-24430-01 7 09/01/2026
1.4.1-beta-24227-04 6 09/01/2026
1.3.0 6 09/01/2026
1.3.0-rc2-24027 6 09/01/2026
1.2.1-beta-23918 6 09/01/2026
1.2.0 6 09/01/2026
1.2.0-rc3-23811 6 09/01/2026
1.2.0-rc2-23826 6 09/01/2026
1.1.1-beta-23516 6 09/01/2026
1.1.0 7 09/01/2026
1.1.0-alpha-00015 5 09/01/2026
1.1.0-alpha-00014 5 09/01/2026
1.1.0-alpha-00012 6 09/01/2026
1.1.0-alpha-00009 6 09/01/2026
1.0.23-beta-23409 6 09/01/2026
1.0.23-beta-23225 6 09/01/2026
1.0.22 6 09/01/2026
1.0.22-beta-23109 6 09/01/2026
1.0.22-beta-23019 6 09/01/2026
1.0.21 6 09/01/2026
1.0.19-rc 6 09/01/2026
1.0.18-beta 5 09/01/2026
1.0.17-beta 6 09/01/2026