Metalama.Framework 2024.2.23

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Metalama.Framework --version 2024.2.23                
NuGet\Install-Package Metalama.Framework -Version 2024.2.23                
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="Metalama.Framework" Version="2024.2.23" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Metalama.Framework --version 2024.2.23                
#r "nuget: Metalama.Framework, 2024.2.23"                
#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.
// Install Metalama.Framework as a Cake Addin
#addin nuget:?package=Metalama.Framework&version=2024.2.23

// Install Metalama.Framework as a Cake Tool
#tool nuget:?package=Metalama.Framework&version=2024.2.23                

Metalama Logo

Metalama is a Roslyn-based framework for on-the-fly code generation and validation in C#.

Using Metalama, you can:

  • Reduce boilerplate by generating it dynamically during compilation. Your source code remains crystal-clear.
  • Verify code in real time against architecture, patterns, and conventions. No need to wait for code reviews.
  • Provide coding assistance to your team with customized feedback and suggestions.
  • Do it by your rules. Automate your own implementation patterns and architecture guidelines.

For more information, see the Metalama website or Metalama documentation.

About this package

The Metalama.Framework package is the principal package of Metalama. Reference this package if you want to use Metalama in your code.

Referencing this package replaces the compiler with Metalama.Compiler, a shallow fork of Roslyn that adds an extension point to allow us to transform the syntax trees. If you need to reference Metalama without replacing the compiler, use the Metalama.Framework.Redist package.

Package Name Description
Metalama.Compiler Metalama Compiler package. Referencing this package directly is not recommended. A fork of Roslyn.
Metalama.Compiler.Sdk Defines APIs for writing source transformers for Metalama.Compiler.
Metalama.Extensions.Architecture Verifies code against architecture rules in Metalama.
Metalama.Extensions.DependencyInjection Allows aspects to consume dependencies from an arbitrary dependency injection framework.
Metalama.Extensions.DependencyInjection.ServiceLocator Locates and pulls dependencies from a global service provider.
Metalama.Extensions.Metrics Exposes code metrics to the code model in Metalama.
Metalama.Extensions.Multicast Emulates PostSharp multicasting within Metalama.
Metalama.Framework The principal package.
Metalama.Framework.Introspection Provides introspection of Metalama aspect classes, instances, and diagnostics.
Metalama.Framework.Redist Redistributable components for Metalama.Framework. Should be installed as a dependency.
Metalama.Framework.RunTime Run-time components for Metalama.Framework. Usually installed as a dependency.
Metalama.Framework.Sdk A tool for custom source code modifying extensions using the Roslyn API.
Metalama.Framework.Workspaces Allows loading solutions and projects, executing Metalama, and introspection of compilation results.
Metalama.Migration Annotated PostSharp API documenting its Metalama equivalent.
Metalama.Patterns.Caching A caching front-end that can be plugged into different backends and helps with building the cache key, coping with special return types, and invalidating the cache.
Metalama.Patterns.Caching.Aspects A set of aspects that simplify the caching: [Cache] to cache a method result as a function of its parameters, [InvalidateCache] to invalidate the cache, or [CacheKey] to mark a cache key.
Metalama.Patterns.Caching.Backend Backend components for Metalama.Patterns.Caching.
Metalama.Patterns.Caching.Backends.Azure Synchronizes the invalidation of distributed Metalama.Patterns.Caching caches over Azure Service Bus.
Metalama.Patterns.Caching.Backends.Redis Redis back-end for Metalama.Patterns.Caching. Implements both caching and cache invalidation over Redis Pub/Sub.
Metalama.Patterns.Contracts Contract-Based Programming (or Design-by-Contract) with custom attributes such as [NotNull] or [Url] thanks to Metalama: pre-conditions, post-conditions and invariants.
Metalama.Patterns.Immutability Represents the concept of Immutable Type so that it can be used by other packages like Metalama.Patterns.Observability.
Metalama.Patterns.Memoization Simple and high-performance caching of properties or parameterless methods with a single [Memo] custom attribute thanks to Metalama.
Metalama.Patterns.Observability Implements the Observable pattern and the INotifyPropertyChanged interface with a single [Observable] attribute thanks to Metalama. Supports both automatic and explicit properties and child objects.
Metalama.Patterns.Xaml Provides custom observability features for XAML applications.
Metalama.Testing.AspectTesting Test framework for Metalama aspects and fabrics.
Metalama.Testing.UnitTesting A package for unit testing compile-time code.
Metalama.Tool Command line tool for registering a license key or accessing configuration settings.
Metalama.Community.AutoCancellationToken A Metalama weaver that automatically adds CancellationToken to your method definitions and your method calls.
Metalama.Community.Costura A Metalama weaver that embeds dependent assemblies as managed resources. A fork of Costura.Fody.
Metalama.Community.Costura.Redist Redistributable components for package Metalama.Community.Costura. Should only be installed as a dependency.
Metalama.Community.Virtuosity A Metalama weaver that makes all methods in a type virtual.

Change log

We maintain a detailed change log on GitHub.

Feedback and support

If you have any feedback regarding Metalama, please open an issue, start a discussion on GitHub, or contact us directly at hello@postsharp.net.

You can also join our Slack community and ask your technical questions in real time.

Slack

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages (28)

Showing the top 5 NuGet packages that depend on Metalama.Framework:

Package Downloads
Metalama.Extensions.DependencyInjection

An official and open-source Metalama extension that allows aspects to consume dependencies from an arbitrary dependency injection framework.

Tofi.Framework.Aspects

Package Description

Metalama.Extensions.Multicast

An official and open-source Metalama extension that emulates PostSharp multicasting.

Metalama.Extensions.Architecture

An official and open-source Metalama extension that allows to verify the code against architecture rules.

Metalama.Community.AutoCancellationToken

A Metalama weaver that automatically adds CancellationToken to your method definitions and your method calls.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2025.0.6-rc 1,046 11/15/2024
2025.0.5-preview 948 11/8/2024
2025.0.4-preview 401 10/31/2024
2025.0.3-preview 620 10/25/2024
2025.0.2-preview 497 10/24/2024
2025.0.1-preview 454 10/14/2024
2024.2.30 1,436 11/15/2024
2024.2.29 2,486 10/31/2024
2024.2.28 935 10/25/2024
2024.2.27 666 10/24/2024
2024.2.26 3,709 10/14/2024
2024.2.25 3,154 10/2/2024
2024.2.24 11,291 9/10/2024
2024.2.23 4,929 8/30/2024
2024.2.22 821 8/29/2024
2024.2.21 3,572 8/28/2024
2024.2.20 6,883 8/15/2024
2024.2.19 4,884 8/1/2024
2024.2.18 919 7/29/2024
2024.2.17-rc 598 7/22/2024
2024.2.16-rc 812 7/18/2024
2024.2.15-rc 683 7/12/2024
2024.2.14-rc 3,572 7/8/2024
2024.2.13-rc 722 7/2/2024
2024.2.12-preview 839 6/28/2024
2024.2.11-preview 695 6/26/2024
2024.2.10-preview 733 6/20/2024
2024.2.9-preview 845 6/11/2024
2024.2.8-preview 654 6/6/2024
2024.2.7-preview 692 5/30/2024
2024.2.6-preview 747 5/25/2024
2024.2.5-preview 809 5/6/2024
2024.2.4-preview 701 5/4/2024
2024.2.3-preview 732 4/30/2024
2024.2.2-preview 654 4/23/2024
2024.2.1-preview 743 4/11/2024
2024.1.30 528 10/24/2024
2024.1.29 551 10/11/2024
2024.1.28 789 9/9/2024
2024.1.27 733 8/28/2024
2024.1.26 962 8/15/2024
2024.1.25 2,049 7/22/2024
2024.1.24 8,153 7/12/2024
2024.1.23 6,318 6/26/2024
2024.1.22 2,224 6/15/2024
2024.1.21 4,556 6/6/2024
2024.1.20 4,448 5/30/2024
2024.1.19 1,386 5/24/2024
2024.1.18 17,849 5/6/2024
2024.1.17 2,511 5/3/2024
2024.1.16 16,577 4/30/2024
2024.1.15 1,819 4/29/2024
2024.1.14 2,630 4/23/2024
2024.1.13 834 4/23/2024
2024.1.12 1,351 4/17/2024
2024.1.11-rc 677 4/11/2024
2024.1.10-rc 742 4/4/2024
2024.1.9-rc 788 3/27/2024
2024.1.8-preview 746 3/25/2024
2024.1.7-preview 873 3/19/2024
2024.1.6-preview 940 3/6/2024
2024.1.5-preview 942 2/29/2024
2024.1.4-preview 1,143 2/27/2024
2024.1.3-preview 978 2/23/2024
2024.1.2-preview 1,317 2/7/2024
2024.1.1-preview 1,233 1/30/2024
2024.0.16 707 6/15/2024
2024.0.15 624 6/6/2024
2024.0.14 616 5/30/2024
2024.0.13 597 5/24/2024
2024.0.12 795 4/17/2024
2024.0.11 33,248 3/21/2024
2024.0.10 1,482 3/19/2024
2024.0.9 6,119 2/29/2024
2024.0.8 2,537 2/23/2024
2024.0.7 11,542 2/7/2024
2024.0.6 17,010 1/3/2024
2024.0.5-rc 1,231 12/21/2023
2024.0.4-rc 1,509 12/12/2023
2024.0.3-preview 1,499 12/6/2023
2024.0.2-preview 3,189 11/14/2023
2024.0.1-preview 1,641 11/6/2023
2023.4.9 5,024 2/7/2024
2023.4.8 6,369 12/21/2023
2023.4.7 1,980 12/12/2023
2023.4.6 19,509 11/7/2023
2023.4.5-rc 1,684 10/26/2023
2023.4.4-preview 1,501 10/18/2023
2023.4.3-preview 2,848 10/4/2023
2023.4.2-preview 1,526 9/26/2023
2023.4.1-preview 1,537 9/13/2023
2023.3.10 1,176 12/21/2023
2023.3.9 1,327 12/12/2023
2023.3.8 10,426 10/17/2023
2023.3.7-rc 1,530 9/29/2023
2023.3.6-rc 1,541 9/26/2023
2023.3.5-rc 1,612 9/13/2023
2023.3.4-preview 1,803 8/30/2023
2023.3.3-preview 1,578 8/29/2023
2023.3.2-preview 3,852 8/1/2023
2023.3.1-preview 1,930 7/28/2023
2023.2.5 20,494 9/12/2023
2023.2.4 11,318 8/7/2023
2023.2.3-rc 1,914 8/3/2023
2023.2.2-rc 2,169 7/21/2023
2023.2.1-preview 3,044 6/27/2023
2023.1.12 1,773 9/12/2023
2023.1.11 2,556 8/7/2023
2023.1.10 3,414 7/17/2023
2023.1.9 2,357 6/27/2023
2023.1.8-rc 1,656 6/19/2023
2023.1.7-rc 1,421 6/14/2023
2023.1.6-rc 2,006 6/12/2023
2023.1.5-preview 2,222 5/26/2023
2023.1.4-preview 1,329 5/26/2023
2023.1.3-preview 1,939 5/25/2023
2023.1.2-preview 1,918 5/24/2023
2023.1.1-preview 4,673 5/10/2023
2023.0.121 1,390 7/17/2023
2023.0.120 1,444 6/27/2023
2023.0.119 14,468 6/14/2023
2023.0.118 1,702 6/7/2023
2023.0.117 2,537 5/25/2023
2023.0.116 1,773 5/23/2023
2023.0.115 5,728 5/4/2023
2023.0.113-rc 2,674 4/21/2023
2023.0.112-rc 1,508 4/14/2023
2023.0.111-rc 2,826 4/5/2023
2023.0.110-rc 1,907 3/30/2023
2023.0.109-rc 2,310 3/23/2023
2023.0.108-rc 1,931 3/15/2023
2023.0.107-rc 3,073 3/1/2023
2023.0.106-rc 253 2/27/2023
2023.0.105-rc 3,153 2/22/2023
2023.0.104-rc 2,017 2/21/2023
2023.0.102-rc 5,575 2/9/2023
2023.0.101-rc 4,235 1/25/2023
0.5.83-preview 2,288 1/23/2023
0.5.82-preview 2,134 1/23/2023
0.5.81-preview 2,066 1/18/2023
0.5.80-preview 2,107 1/15/2023
0.5.79-preview 2,008 1/13/2023
0.5.78-preview 2,224 1/10/2023
0.5.77-preview 1,978 1/9/2023
0.5.76-preview 2,110 1/6/2023
0.5.75-preview 2,048 1/5/2023
0.5.74-preview 2,059 1/3/2023
0.5.73-preview 2,818 12/15/2022
0.5.72-preview 1,993 12/13/2022
0.5.71-preview 2,630 12/10/2022
0.5.70-preview 2,053 12/9/2022
0.5.69-preview 1,988 12/8/2022
0.5.68-preview 1,430 12/5/2022
0.5.67-preview 1,574 12/2/2022
0.5.66-preview 1,441 11/30/2022
0.5.65-preview 1,340 11/30/2022
0.5.64-preview 1,360 11/29/2022
0.5.63-preview 2,066 11/25/2022
0.5.62-preview 1,368 11/24/2022
0.5.61-preview 1,295 11/17/2022
0.5.60-preview 1,317 11/17/2022
0.5.59-preview 1,244 11/16/2022
0.5.58-preview 1,381 11/15/2022
0.5.57-preview 1,416 11/10/2022
0.5.56-preview 1,558 11/8/2022
0.5.55-preview 1,340 11/3/2022
0.5.54-preview 1,311 11/2/2022
0.5.53-preview 1,305 11/1/2022
0.5.52-preview 1,385 10/28/2022
0.5.51-preview 2,032 10/27/2022
0.5.50-preview 800 10/24/2022
0.5.49-preview 356 10/20/2022
0.5.48-preview 715 10/18/2022
0.5.47-preview 638 10/12/2022
0.5.46-preview 483 10/6/2022
0.5.45-preview 264 10/6/2022
0.5.44-preview 525 10/4/2022
0.5.43-preview 555 10/1/2022
0.5.42-preview 366 9/29/2022
0.5.41-preview 800 9/28/2022
0.5.40-preview 1,087 9/9/2022
0.5.39-preview 452 9/6/2022
0.5.38-preview 396 9/3/2022
0.5.37-preview 1,439 8/19/2022
0.5.36-preview 644 8/9/2022
0.5.35-preview 327 8/6/2022
0.5.34-preview 509 8/4/2022
0.5.33-preview 195 8/2/2022
0.5.32-preview 373 7/28/2022
0.5.31-preview 336 7/26/2022
0.5.30-preview 623 7/22/2022
0.5.29-preview 548 7/21/2022
0.5.28-preview 574 7/20/2022
0.5.27-preview 292 7/19/2022
0.5.26-preview 495 7/12/2022
0.5.25-preview 859 6/25/2022
0.5.24-preview 473 6/23/2022
0.5.23-preview 970 6/7/2022
0.5.22-preview 489 5/31/2022
0.5.21-preview 339 5/27/2022
0.5.20-preview 297 5/24/2022
0.5.19-preview 720 5/17/2022
0.5.18-preview 299 5/12/2022
0.5.16-preview 340 5/9/2022
0.5.15-preview 309 5/7/2022
0.5.13-preview 725 4/28/2022
0.5.12-preview 345 4/27/2022
0.5.11-preview 335 4/15/2022
0.5.10-preview 345 4/15/2022
0.5.9-preview 279 4/14/2022
0.5.8-preview 398 4/7/2022
0.5.7-preview 342 3/22/2022
0.5.6-preview 352 3/16/2022
0.5.5-preview 333 3/15/2022
0.5.4-preview 300 3/14/2022
0.5.3-preview 301 3/9/2022
0.5.2-preview 303 2/23/2022
0.5.1-preview 325 2/18/2022
0.5.0-preview 272 2/7/2022