This repository houses the core framework implementation of Metalama.
Warning
This repository operates under a source-available commercial license. While you can refer to the source code for reference and troubleshooting purposes, modifications and builds from this source code are prohibited. To modify and build from the source code, a separate Source Subscription must be acquired.
Below are the NuGet packages associated with this repository:
Package | Description |
---|---|
Metalama.Framework | This is the public API of the Metalama Framework. It incorporates a reference to Metalama.Compiler, effectively replacing the Roslyn compiler with our custom version. |
Metalama.Testing.UnitTesting | Provides base classes and utilities for unit testing compile-time code. |
Metalama.Testing.AspectTesting | A framework based on xUnit for testing code generation by aspects. |
Metalama.Framework.Redist | Similar to Metalama.Framework , but excludes the dependency on Metalama.Compiler . |
Metalama.Framework.Sdk | Facilitates the use of the Roslyn API from aspects. |
Metalama.Framework.Engine | This is the core implementation of Metalama.Framework . Direct referencing of this package is discouraged and unsupported. It's intended to be a dependency for Metalama.Testing.AspectTesting . |
Metalama.Framework.CompileTimeContracts | Defines the public API between compiled T# templates and Metalama.Framework.Engine . |
Metalama.Framework.Introspection | Provides an API to inspect the object model that represents the compilation process of Metalama.Framework , such as aspect and advice instances, as well as its results. |
Metalama.Framework.Workspaces | A supplementary API to Metalama.Framework.Introspection , designed to facilitate the loading of Visual Studio projects and solutions. This package is also useful to inspect projects that don't use Metalama. It is used by Metalama.LinqPad . |
Metalama.Tool | The metalama tool for the .NET CLI. |