Metalama.Patterns.Immutability
2025.1.17
Prefix Reserved
See the version list below for details.
dotnet add package Metalama.Patterns.Immutability --version 2025.1.17
NuGet\Install-Package Metalama.Patterns.Immutability -Version 2025.1.17
<PackageReference Include="Metalama.Patterns.Immutability" Version="2025.1.17" />
<PackageVersion Include="Metalama.Patterns.Immutability" Version="2025.1.17" />
<PackageReference Include="Metalama.Patterns.Immutability" />
paket add Metalama.Patterns.Immutability --version 2025.1.17
#r "nuget: Metalama.Patterns.Immutability, 2025.1.17"
#:package Metalama.Patterns.Immutability@2025.1.17
#addin nuget:?package=Metalama.Patterns.Immutability&version=2025.1.17
#tool nuget:?package=Metalama.Patterns.Immutability&version=2025.1.17
About
The Metalama.Patterns.Immutability implements the concept of immutable type, i.e. types whose value cannot be changed after they have been created. Other packages, such as Metalama.Patterns.Observability, can then rely on this concept to achieve a better understanding of the code.
Key Features
- You can mark types as immutable using the
[Immutable]custom attribute or theConfigreImmutabilityfabric extension warning. - Concept of shallow or deep immutability.
- The
[Immutable]aspect reports warnings if some fields or properties are not mutable.
Main Types
The primary types in this package are:
ImmutabilityKindrepresents the kind of immutability of a type, i.e.None,ShalloworDeep.ImmutableAttributeis an aspect that marks a type as immutable and reports warnings if some fields or properties are mutable.ImmutabilityExtensions.GetImmutabilityis an extension ofINamedTypeto get theImmutabilityKindof a given type.ImmutabilityConfigurationExtensions.ConfigureImmutabilityis a fabric extension method to programmatically set theImmutabilityKindof types.IImmutabilityClassifieris an abstraction whose implementations can be passed toImmutabilityConfigurationExtensions.ConfigureImmutabilityto dynamically return theImmutabilityKindof a kind. It is useful when theImmutabilityKinddepends on type arguments.
Additional Documentation
Related Packages
Metalama.Patterns.Observabilityrelies onMetalama.Patterns.Immutabilityto decide which method calls are supported in property getters.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 is compatible. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.1
- Metalama.Framework (>= 2025.1.17)
-
.NETStandard 2.0
- Metalama.Framework (>= 2025.1.17)
-
net6.0
- Metalama.Framework (>= 2025.1.17)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Metalama.Patterns.Immutability:
| Package | Downloads |
|---|---|
|
Metalama.Patterns.Observability
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. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.0.10-rc | 89 | 12/19/2025 |
| 2026.0.9-rc | 185 | 12/12/2025 |
| 2026.0.8-rc | 448 | 12/9/2025 |
| 2026.0.7-rc | 269 | 12/4/2025 |
| 2026.0.6-rc | 233 | 11/28/2025 |
| 2026.0.5-preview | 539 | 11/12/2025 |
| 2026.0.4-preview | 163 | 11/8/2025 |
| 2026.0.3-preview | 328 | 10/30/2025 |
| 2026.0.2-preview | 200 | 10/7/2025 |
| 2026.0.1-preview | 142 | 10/4/2025 |
| 2025.2.5-rc | 205 | 10/7/2025 |
| 2025.2.4-rc | 210 | 10/1/2025 |
| 2025.2.2-preview | 749 | 9/19/2025 |
| 2025.2.1-preview | 253 | 9/9/2025 |
| 2025.1.17 | 483 | 12/9/2025 |
| 2025.1.16 | 317 | 10/22/2025 |
| 2025.1.15 | 279 | 10/7/2025 |
| 2025.1.14 | 220 | 9/30/2025 |
| 2025.1.13 | 281 | 9/5/2025 |
| 2025.1.12 | 488 | 8/7/2025 |
| 2025.1.11 | 640 | 7/23/2025 |
| 2025.1.10 | 513 | 7/3/2025 |
| 2025.1.9 | 663 | 5/29/2025 |
| 2025.1.8 | 283 | 5/26/2025 |
| 2025.1.7 | 288 | 5/22/2025 |
| 2025.1.6 | 335 | 5/15/2025 |
| 2025.1.5 | 273 | 5/2/2025 |
| 2025.1.4-rc | 361 | 4/15/2025 |
| 2025.1.3-rc | 304 | 4/9/2025 |
| 2025.1.2-preview | 283 | 4/1/2025 |
| 2025.1.1-preview | 245 | 3/18/2025 |
| 2025.0.12 | 245 | 5/22/2025 |
| 2025.0.11 | 219 | 5/2/2025 |
| 2025.0.10 | 305 | 3/31/2025 |
| 2025.0.9 | 384 | 3/7/2025 |
| 2025.0.8 | 432 | 1/6/2025 |
| 2025.0.7-rc | 279 | 12/6/2024 |
| 2025.0.6-rc | 279 | 11/15/2024 |
| 2025.0.5-preview | 210 | 11/8/2024 |
| 2025.0.4-preview | 191 | 10/31/2024 |
| 2025.0.3-preview | 188 | 10/25/2024 |
| 2025.0.2-preview | 168 | 10/24/2024 |
| 2025.0.1-preview | 184 | 10/14/2024 |
| 2024.2.32 | 320 | 3/7/2025 |
| 2024.2.31 | 242 | 12/6/2024 |
| 2024.2.30 | 240 | 11/15/2024 |
| 2024.2.29 | 213 | 10/31/2024 |
| 2024.2.28 | 203 | 10/25/2024 |
| 2024.2.27 | 181 | 10/24/2024 |
| 2024.2.26 | 305 | 10/14/2024 |
| 2024.2.25 | 321 | 10/2/2024 |
| 2024.2.24 | 310 | 9/10/2024 |
| 2024.2.23 | 261 | 8/30/2024 |
| 2024.2.22 | 220 | 8/29/2024 |
| 2024.2.21 | 226 | 8/28/2024 |
| 2024.2.20 | 235 | 8/15/2024 |
| 2024.2.19 | 1,511 | 8/1/2024 |
| 2024.2.18 | 265 | 7/29/2024 |
| 2024.2.17-rc | 224 | 7/22/2024 |
| 2024.2.16-rc | 155 | 7/18/2024 |
| 2024.2.15-rc | 139 | 7/12/2024 |
| 2024.2.14-rc | 2,508 | 7/8/2024 |
| 2024.2.13-rc | 166 | 7/2/2024 |
| 2024.2.12-preview | 161 | 6/28/2024 |
| 2024.2.11-preview | 162 | 6/26/2024 |
| 2024.2.10-preview | 172 | 6/20/2024 |
| 2024.2.9-preview | 159 | 6/11/2024 |