Implements the Observable pattern and the INotifyPropertyChanged interface with a single [Observable] attribute thanks to Metalama. Supports both automatic and explicit properties and child objects.
$ dotnet add package Metalama.Patterns.ObservabilityThe Metalama.Patterns.Observability contains an aspect that implements the Observer pattern, i.e. the INotifyPropertyChanged interface.
string FullName => $"{this.Model.FirstName} {this.Model.LastName}".The primary types in this package are:
ObservableAttribute is a type-level aspect that implements the Observer pattern and the INotifyPropertyChanged interface.NotObservableAttribute is an attribute that waives a property from the ObservableAttribute aspect.ConstantAttribute is an attribute that represents that a method is safed for use from a property made observable by the ObservableAttribute aspect.SuppressObservabilityWarningsAttribute is an attribute that suppresses all warnings reported by the ObservableAttribute aspect in the target property.ObservabilityExtensions.ConfigureObservability is a fabric extension method that allows to configure the ObservableAttribute aspect.Metalama.Patterns.Immutability implements the immutability concept used by the current package to decide which method calls are supported in property getters.