CodeJunkie.Metadata.Generator 1.0.1

dotnet add package CodeJunkie.Metadata.Generator --version 1.0.1
                    
NuGet\Install-Package CodeJunkie.Metadata.Generator -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CodeJunkie.Metadata.Generator" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CodeJunkie.Metadata.Generator" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="CodeJunkie.Metadata.Generator" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CodeJunkie.Metadata.Generator --version 1.0.1
                    
#r "nuget: CodeJunkie.Metadata.Generator, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CodeJunkie.Metadata.Generator@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CodeJunkie.Metadata.Generator&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=CodeJunkie.Metadata.Generator&version=1.0.1
                    
Install as a Cake Tool

Metadata

CodeJunkie.Metadata is a metaprogramming tool for generating metadata and enabling reflection-like capabilities in ahead-of-time (AOT).

Installation

Add the latest versions of [Metadata] and [Metadata Generator] from NuGet to your C# project.

Requirements

  • .NET 8 SDK: Ensure your project targets the latest .NET 8 SDK to avoid compiler mismatches (CS9057 warning). Treat this warning as an error to prevent downstream issues.

Example Configuration

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>

    <WarningsAsErrors>CS9057</WarningsAsErrors>

  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="CodeJunkie.Metadata" Version="x.x.x" />
    <PackageReference Include="CodeJunkie.Metadata.Generator" Version="x.x.x" PrivateAssets="all" OutputItemType="analyzer" />
  </ItemGroup>
</Project>

Overview

Metadata is a metaprogramming tool that enables C# developers to:

  • Generate metadata about types at build time.
  • Avoid runtime reflection issues in AOT environments like iOS.
  • Power other Code Junkie tools such as [States] and [Seralization].

Key Features

  • Registry of all globally visible types.
  • Metadata generation for types, attributes, and properties.
  • Support for mixins and type hierarchies.
  • Optimized for AOT environments.

The Metadata package provides the following features:

  • Create a registry of all types visible from the global scope.
  • Generate metadata about visible types.
  • Track types by id and version.
  • Allow types to implement and look up mixins.
  • Compute and cache type hierarchies, attributes, and properties.
  • Track generic types of properties in a way that enables convenient serialization in AOT environments.

Usage

Introspective Types

Add the [Meta] attribute to a partial class or record to enable metadata generation.

using CodeJunkie.Metadata;

[Meta]
public partial class MyType;

public partial class Container {
  [Meta] // Nested types are supported.
  public partial class MyNestedType;
}
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 202 5/19/2025
1.0.0 442 5/19/2025
0.0.0-devbuild 427 5/19/2025

Metadata Generator release.