Open sandboxFocusImprove this doc
  • Article

Namespace Metalama.Framework.Workspaces

Overview

This namespace enables the loading of a C# project and solution into the Metalama.Framework.Code code model from any application, such as LinqPad.

The entry point of this namespace is the WorkspaceCollection class.

Class Diagram

SourceCode
TransformedCode
Projects
ICompilationSet
Compilations
Types
Methods
Fields
Properties
FieldsAndProperties
Constructors
Events
TargetFrameworks
IIntrospectionCompilationDetails
Diagnostics
AspectClasses
AspectLayers
AspectInstances
Advice
Transformations
IsMetalamaEnabled
HasMetalamaSucceeded
IProjectSet
Projects
GetSubset()
GetDeclaration()
ICompilationSetResult
Project
Workspace
WorkspaceCollection

Classes

DeclarationExtensions

DiagnosticExtensions

DiagnosticReporter

A utility class that makes it easy to report diagnostics from object queries in different environments. The default implementation writes messages to the console using the ReportToConsole(IReadOnlyList<IIntrospectionDiagnostic>) method. The action can be changed by setting the ReportAction property.

MSBuildInitializationException

An exception thrown then initializing MSBuild.

Project

Represents a C# project for a specific compilation.

ServiceBuilder

Workspace

Represents a set of projects. Workspaces can be created using the WorkspaceCollection class. When projects target several frameworks, they are represented by several instances of the Project class in the workspace.

WorkspaceCollection

Represents a set of workspaces. Two attempts to load a workspace with the same parameters, in the same WorkspaceCollection, will return the exact same instance, unless the Reset() method is called.

WorkspaceLoadException

Interfaces

ICompilationSet

Represents a set of compilations and exposes lists of declarations that merge the declarations from all the compilations in the set.

ICompilationSetResult

IProjectSet

Represents a set of projects. An IProjectSet can include several instances of the Project for the same file if they target multiple frameworks, one Project instance per framework. You can create a subset with the GetSubset(Predicate<Project>) method.

IWorkspaceLoadInfo

Exposes the information needed to reconstruct a Workspace.