Open sandboxFocus

Class 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.

Inheritance
WorkspaceCollection
Namespace: Metalama.Framework.Workspaces
Assembly: Metalama.Framework.Workspaces.dll
Syntax
public sealed class WorkspaceCollection
Remarks

The WorkspaceCollection provides caching of loaded workspaces. When you call Load(params string[]) or LoadAsync(ImmutableArray<string>, ImmutableDictionary<string, string>?, bool, CancellationToken) with the same paths and properties, the collection returns the previously loaded Workspace instead of reloading it. This improves performance and ensures that multiple parts of your application can share the same workspace instance.

Use the Default property to access the default collection, or create a new instance with a custom service provider.

Constructors

Name Description
WorkspaceCollection(GlobalServiceProvider?)

Properties

Name Description
Default

Gets the default instance of the WorkspaceCollection class. This is a singleton instance constructed without specifying a service provider.

IgnoreLoadErrors
ServiceBuilder

Gets the service builder for the current collection. Use this to register custom services that will be available to all workspaces in this collection.

Methods

Name Description
Load(params string[])
LoadAsync(ImmutableArray<string>, ImmutableDictionary<string, string>?, bool, CancellationToken)
LoadAsync(params string[])
Reset()

Removes all cached workspaces, but not the set of registered services. After calling this method, subsequent calls to Load(params string[]) or LoadAsync(ImmutableArray<string>, ImmutableDictionary<string, string>?, bool, CancellationToken) will reload workspaces from disk.

TryFindProject(Compilation, out Workspace?, out Project?, out bool)
WithServices(Action<ServiceBuilder>)

Extension Methods

See Also