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, theawait
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 |