PostSharp Aspect Framework
The PostSharp Framework has been entirely ported to Metalama, with a few notable limitations:
- Methods from an external assembly can't be intercepted; only those from the current project can.
- The event of suspending and resuming an
asyncstate machine can't be advised. Specifically, theawaitkeyword can't be advised. - Some constructor-related advice types aren't yet implemented:
- After the 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 | Documentation | Feature gaps |
|---|---|---|---|
| Contracts | Completed | Metalama.Patterns.Contracts | None |
| Caching | Completed | Metalama.Patterns.Caching | None |
| INotifyPropertyChanged | Completed | Metalama.Patterns.Observability | See Migrating the [NotifyPropertyChanged] aspect |
| WPF | Completed | Metalama.Patterns.Wpf | None |
| Undo/Redo | Not planned | ||
| Diagnostics (logging) | Not planned | ||
| Multi-threading | Not planned | ||
| Aggregatable | Not planned | ||
| Weak event | Not planned |
Note
Contact us if you have an enterprise subscription and rely on a PostSharp feature that we don't plan to migrate to Metalama.