Skip to main content
.NETStandard2.0

A Metalama weaver that makes all methods in a type virtual.

Published
Jan 12, 2026
9mo ago
Total Downloads
75.6K
75,562

Install

dotnet add package Metalama.Community.Virtuosity --version 2026.0.13
ProductVersions
.NET Standard
netstandard2.0

README

Metalama.Community.Virtuosity

Allows you to make all target methods virtual without adding the virtual keyword to every one of them.

This is a Metalama aspect. It modifies your code during compilation by using source weaving.

Example

Your code:

using Metalama.Community.Virtuosity;

[Virtualize]
class A 
{
  public void M1() { }
  protected void M2() { }
  private void M3() { }
}

What gets compiled:

class A 
{
  public virtual void M1() { }
  protected virtual void M2() { }
  private void M3() { }
}
Installation
  1. Install the NuGet package: dotnet add package Metalama.Community.Virtuosity --prerelease.
  2. Apply the aspect to the relavant types by adding the [Virtualize] attribute to them.
How to use

By annotating a class or a record type with [Virtualize], you make all methods virtual (except those that can't be virtual, like static and private methods).

For more details, see Details.

Changes from Previous Version

No structural changes between v2026.0.12 and v2026.0.13.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.