Metalama.Framework
2024.2.24
Prefix Reserved
See the version list below for details.
dotnet add package Metalama.Framework --version 2024.2.24
NuGet\Install-Package Metalama.Framework -Version 2024.2.24
<PackageReference Include="Metalama.Framework" Version="2024.2.24" />
paket add Metalama.Framework --version 2024.2.24
#r "nuget: Metalama.Framework, 2024.2.24"
// Install Metalama.Framework as a Cake Addin #addin nuget:?package=Metalama.Framework&version=2024.2.24 // Install Metalama.Framework as a Cake Tool #tool nuget:?package=Metalama.Framework&version=2024.2.24
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.
Quick Links
- 🌐 Metalama Website
- 📖 Documentation
- 📝 Annotated Examples
- 🎥 Tutorial Videos
- 🐞 Bug Reports
- 💬 Discussions
- 📜 Detailed Changelog
- 📢 Release Notes
- ✨ Visual Studio Extension
Related packages
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.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Metalama.Compiler (>= 2024.2.13)
- Metalama.Framework.Redist (>= 2024.2.24)
- Microsoft.CSharp (>= 4.7.0)
NuGet packages (27)
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 | 60 | 11/15/2024 |
2025.0.5-preview | 647 | 11/8/2024 |
2025.0.4-preview | 381 | 10/31/2024 |
2025.0.3-preview | 618 | 10/25/2024 |
2025.0.2-preview | 495 | 10/24/2024 |
2025.0.1-preview | 451 | 10/14/2024 |
2024.2.30 | 58 | 11/15/2024 |
2024.2.29 | 1,393 | 10/31/2024 |
2024.2.28 | 917 | 10/25/2024 |
2024.2.27 | 649 | 10/24/2024 |
2024.2.26 | 2,923 | 10/14/2024 |
2024.2.25 | 2,945 | 10/2/2024 |
2024.2.24 | 10,521 | 9/10/2024 |
2024.2.23 | 4,342 | 8/30/2024 |
2024.2.22 | 814 | 8/29/2024 |
2024.2.21 | 3,207 | 8/28/2024 |
2024.2.20 | 5,937 | 8/15/2024 |
2024.2.19 | 4,724 | 8/1/2024 |
2024.2.18 | 909 | 7/29/2024 |
2024.2.17-rc | 596 | 7/22/2024 |
2024.2.16-rc | 764 | 7/18/2024 |
2024.2.15-rc | 671 | 7/12/2024 |
2024.2.14-rc | 3,551 | 7/8/2024 |
2024.2.13-rc | 720 | 7/2/2024 |
2024.2.12-preview | 837 | 6/28/2024 |
2024.2.11-preview | 693 | 6/26/2024 |
2024.2.10-preview | 731 | 6/20/2024 |
2024.2.9-preview | 843 | 6/11/2024 |
2024.2.8-preview | 652 | 6/6/2024 |
2024.2.7-preview | 690 | 5/30/2024 |
2024.2.6-preview | 745 | 5/25/2024 |
2024.2.5-preview | 805 | 5/6/2024 |
2024.2.4-preview | 699 | 5/4/2024 |
2024.2.3-preview | 730 | 4/30/2024 |
2024.2.2-preview | 652 | 4/23/2024 |
2024.2.1-preview | 741 | 4/11/2024 |
2024.1.30 | 502 | 10/24/2024 |
2024.1.29 | 539 | 10/11/2024 |
2024.1.28 | 782 | 9/9/2024 |
2024.1.27 | 726 | 8/28/2024 |
2024.1.26 | 955 | 8/15/2024 |
2024.1.25 | 2,032 | 7/22/2024 |
2024.1.24 | 7,900 | 7/12/2024 |
2024.1.23 | 6,284 | 6/26/2024 |
2024.1.22 | 2,217 | 6/15/2024 |
2024.1.21 | 4,089 | 6/6/2024 |
2024.1.20 | 4,402 | 5/30/2024 |
2024.1.19 | 1,379 | 5/24/2024 |
2024.1.18 | 17,697 | 5/6/2024 |
2024.1.17 | 2,504 | 5/3/2024 |
2024.1.16 | 15,504 | 4/30/2024 |
2024.1.15 | 1,733 | 4/29/2024 |
2024.1.14 | 2,618 | 4/23/2024 |
2024.1.13 | 822 | 4/23/2024 |
2024.1.12 | 1,326 | 4/17/2024 |
2024.1.11-rc | 675 | 4/11/2024 |
2024.1.10-rc | 740 | 4/4/2024 |
2024.1.9-rc | 786 | 3/27/2024 |
2024.1.8-preview | 744 | 3/25/2024 |
2024.1.7-preview | 866 | 3/19/2024 |
2024.1.6-preview | 933 | 3/6/2024 |
2024.1.5-preview | 940 | 2/29/2024 |
2024.1.4-preview | 1,141 | 2/27/2024 |
2024.1.3-preview | 976 | 2/23/2024 |
2024.1.2-preview | 1,315 | 2/7/2024 |
2024.1.1-preview | 1,231 | 1/30/2024 |
2024.0.16 | 698 | 6/15/2024 |
2024.0.15 | 619 | 6/6/2024 |
2024.0.14 | 611 | 5/30/2024 |
2024.0.13 | 592 | 5/24/2024 |
2024.0.12 | 783 | 4/17/2024 |
2024.0.11 | 31,609 | 3/21/2024 |
2024.0.10 | 1,477 | 3/19/2024 |
2024.0.9 | 6,087 | 2/29/2024 |
2024.0.8 | 2,532 | 2/23/2024 |
2024.0.7 | 11,352 | 2/7/2024 |
2024.0.6 | 16,977 | 1/3/2024 |
2024.0.5-rc | 1,226 | 12/21/2023 |
2024.0.4-rc | 1,507 | 12/12/2023 |
2024.0.3-preview | 1,497 | 12/6/2023 |
2024.0.2-preview | 3,186 | 11/14/2023 |
2024.0.1-preview | 1,639 | 11/6/2023 |
2023.4.9 | 5,015 | 2/7/2024 |
2023.4.8 | 6,090 | 12/21/2023 |
2023.4.7 | 1,975 | 12/12/2023 |
2023.4.6 | 19,284 | 11/7/2023 |
2023.4.5-rc | 1,682 | 10/26/2023 |
2023.4.4-preview | 1,499 | 10/18/2023 |
2023.4.3-preview | 2,846 | 10/4/2023 |
2023.4.2-preview | 1,518 | 9/26/2023 |
2023.4.1-preview | 1,535 | 9/13/2023 |
2023.3.10 | 1,170 | 12/21/2023 |
2023.3.9 | 1,322 | 12/12/2023 |
2023.3.8 | 10,238 | 10/17/2023 |
2023.3.7-rc | 1,528 | 9/29/2023 |
2023.3.6-rc | 1,536 | 9/26/2023 |
2023.3.5-rc | 1,607 | 9/13/2023 |
2023.3.4-preview | 1,801 | 8/30/2023 |
2023.3.3-preview | 1,576 | 8/29/2023 |
2023.3.2-preview | 3,850 | 8/1/2023 |
2023.3.1-preview | 1,928 | 7/28/2023 |
2023.2.5 | 20,388 | 9/12/2023 |
2023.2.4 | 11,312 | 8/7/2023 |
2023.2.3-rc | 1,912 | 8/3/2023 |
2023.2.2-rc | 2,167 | 7/21/2023 |
2023.2.1-preview | 3,042 | 6/27/2023 |
2023.1.12 | 1,768 | 9/12/2023 |
2023.1.11 | 2,552 | 8/7/2023 |
2023.1.10 | 3,410 | 7/17/2023 |
2023.1.9 | 2,351 | 6/27/2023 |
2023.1.8-rc | 1,654 | 6/19/2023 |
2023.1.7-rc | 1,419 | 6/14/2023 |
2023.1.6-rc | 2,004 | 6/12/2023 |
2023.1.5-preview | 2,219 | 5/26/2023 |
2023.1.4-preview | 1,327 | 5/26/2023 |
2023.1.3-preview | 1,936 | 5/25/2023 |
2023.1.2-preview | 1,915 | 5/24/2023 |
2023.1.1-preview | 4,671 | 5/10/2023 |
2023.0.121 | 1,381 | 7/17/2023 |
2023.0.120 | 1,439 | 6/27/2023 |
2023.0.119 | 14,464 | 6/14/2023 |
2023.0.118 | 1,698 | 6/7/2023 |
2023.0.117 | 2,533 | 5/25/2023 |
2023.0.116 | 1,769 | 5/23/2023 |
2023.0.115 | 5,720 | 5/4/2023 |
2023.0.113-rc | 2,672 | 4/21/2023 |
2023.0.112-rc | 1,506 | 4/14/2023 |
2023.0.111-rc | 2,824 | 4/5/2023 |
2023.0.110-rc | 1,905 | 3/30/2023 |
2023.0.109-rc | 2,306 | 3/23/2023 |
2023.0.108-rc | 1,929 | 3/15/2023 |
2023.0.107-rc | 3,071 | 3/1/2023 |
2023.0.106-rc | 251 | 2/27/2023 |
2023.0.105-rc | 3,151 | 2/22/2023 |
2023.0.104-rc | 2,015 | 2/21/2023 |
2023.0.102-rc | 5,573 | 2/9/2023 |
2023.0.101-rc | 4,233 | 1/25/2023 |
0.5.83-preview | 2,286 | 1/23/2023 |
0.5.82-preview | 2,132 | 1/23/2023 |
0.5.81-preview | 2,064 | 1/18/2023 |
0.5.80-preview | 2,105 | 1/15/2023 |
0.5.79-preview | 2,006 | 1/13/2023 |
0.5.78-preview | 2,222 | 1/10/2023 |
0.5.77-preview | 1,976 | 1/9/2023 |
0.5.76-preview | 2,108 | 1/6/2023 |
0.5.75-preview | 2,046 | 1/5/2023 |
0.5.74-preview | 2,057 | 1/3/2023 |
0.5.73-preview | 2,816 | 12/15/2022 |
0.5.72-preview | 1,991 | 12/13/2022 |
0.5.71-preview | 2,628 | 12/10/2022 |
0.5.70-preview | 2,051 | 12/9/2022 |
0.5.69-preview | 1,986 | 12/8/2022 |
0.5.68-preview | 1,428 | 12/5/2022 |
0.5.67-preview | 1,572 | 12/2/2022 |
0.5.66-preview | 1,439 | 11/30/2022 |
0.5.65-preview | 1,338 | 11/30/2022 |
0.5.64-preview | 1,358 | 11/29/2022 |
0.5.63-preview | 2,064 | 11/25/2022 |
0.5.62-preview | 1,366 | 11/24/2022 |
0.5.61-preview | 1,293 | 11/17/2022 |
0.5.60-preview | 1,315 | 11/17/2022 |
0.5.59-preview | 1,242 | 11/16/2022 |
0.5.58-preview | 1,379 | 11/15/2022 |
0.5.57-preview | 1,414 | 11/10/2022 |
0.5.56-preview | 1,556 | 11/8/2022 |
0.5.55-preview | 1,338 | 11/3/2022 |
0.5.54-preview | 1,309 | 11/2/2022 |
0.5.53-preview | 1,303 | 11/1/2022 |
0.5.52-preview | 1,383 | 10/28/2022 |
0.5.51-preview | 2,030 | 10/27/2022 |
0.5.50-preview | 798 | 10/24/2022 |
0.5.49-preview | 354 | 10/20/2022 |
0.5.48-preview | 713 | 10/18/2022 |
0.5.47-preview | 634 | 10/12/2022 |
0.5.46-preview | 481 | 10/6/2022 |
0.5.45-preview | 262 | 10/6/2022 |
0.5.44-preview | 523 | 10/4/2022 |
0.5.43-preview | 551 | 10/1/2022 |
0.5.42-preview | 364 | 9/29/2022 |
0.5.41-preview | 797 | 9/28/2022 |
0.5.40-preview | 1,085 | 9/9/2022 |
0.5.39-preview | 450 | 9/6/2022 |
0.5.38-preview | 394 | 9/3/2022 |
0.5.37-preview | 1,437 | 8/19/2022 |
0.5.36-preview | 642 | 8/9/2022 |
0.5.35-preview | 323 | 8/6/2022 |
0.5.34-preview | 507 | 8/4/2022 |
0.5.33-preview | 193 | 8/2/2022 |
0.5.32-preview | 371 | 7/28/2022 |
0.5.31-preview | 334 | 7/26/2022 |
0.5.30-preview | 621 | 7/22/2022 |
0.5.29-preview | 546 | 7/21/2022 |
0.5.28-preview | 572 | 7/20/2022 |
0.5.27-preview | 288 | 7/19/2022 |
0.5.26-preview | 493 | 7/12/2022 |
0.5.25-preview | 855 | 6/25/2022 |
0.5.24-preview | 471 | 6/23/2022 |
0.5.23-preview | 968 | 6/7/2022 |
0.5.22-preview | 487 | 5/31/2022 |
0.5.21-preview | 337 | 5/27/2022 |
0.5.20-preview | 295 | 5/24/2022 |
0.5.19-preview | 718 | 5/17/2022 |
0.5.18-preview | 295 | 5/12/2022 |
0.5.16-preview | 338 | 5/9/2022 |
0.5.15-preview | 307 | 5/7/2022 |
0.5.13-preview | 723 | 4/28/2022 |
0.5.12-preview | 343 | 4/27/2022 |
0.5.11-preview | 333 | 4/15/2022 |
0.5.10-preview | 341 | 4/15/2022 |
0.5.9-preview | 277 | 4/14/2022 |
0.5.8-preview | 396 | 4/7/2022 |
0.5.7-preview | 340 | 3/22/2022 |
0.5.6-preview | 350 | 3/16/2022 |
0.5.5-preview | 331 | 3/15/2022 |
0.5.4-preview | 298 | 3/14/2022 |
0.5.3-preview | 299 | 3/9/2022 |
0.5.2-preview | 301 | 2/23/2022 |
0.5.1-preview | 323 | 2/18/2022 |
0.5.0-preview | 270 | 2/7/2022 |