MetalamaConceptual documentationMigrating from Post­SharpFeature status
Open sandboxFocusImprove this doc

Status of the migration of PostSharp features to Metalama

PostSharp Aspect Framework

The PostSharp Framework has been entirely ported to Metalama, with a few notable differences:

  • Methods from an external assembly cannot be intercepted; only those from the current project can be.
  • The event of suspending and resuming an async state machine, as in PostSharp, cannot be advised. Specifically, the await keyword cannot be advised.
  • The raise semantic of an event cannot be intercepted, only the add and remove semantics can be.
  • Some constructor-related advice types are not yet implemented:

    • Around constructor body
    • After last constructor
    • After MemberwiseClone

PostSharp Architecture Framework

The equivalent of PostSharp Architecture Framework (e.g. the PostSharp.Constraints namespace) is the Metalama.Extensions.Architecture package.

See Verifying architecture for details.

PostSharp Patterns

Library Migration Status Description
Contracts Completed. All features matched. See Metalama Contracts.
Caching Completed. All features matched. See Metalama Caching.
INotifyPropertyChanged In progress See ObservableAttribute.
XAML In progress See the GitHub repo for the work in progress.
Undo/Redo Not started
Multi-threading Not started
Aggregatable Not started
Weak event Not started