MikValSor.EnsuredImmutable
1.0.2
.NET Standard 2.0
.NET Framework 4.5
Install-Package MikValSor.EnsuredImmutable -Version 1.0.2
dotnet add package MikValSor.EnsuredImmutable --version 1.0.2
<PackageReference Include="MikValSor.EnsuredImmutable" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MikValSor.EnsuredImmutable --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MikValSor.EnsuredImmutable, 1.0.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install MikValSor.EnsuredImmutable as a Cake Addin
#addin nuget:?package=MikValSor.EnsuredImmutable&version=1.0.2
// Install MikValSor.EnsuredImmutable as a Cake Tool
#tool nuget:?package=MikValSor.EnsuredImmutable&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Library build on top of MikValSor.ImmutableValidator that encapsulated immutable objects ensured types for to ease development and minimize redundant validation check.
Example:
class MyClass
{
public string Value;
}
class MyOtherClass
{
public readonly string Value;
public MyOtherClass(string value)
{
Value = value;
}
}
void Example()
{
//Muttable
var myObject = new MyClass { Value = "Value" };
try
{
MikValSor.Immutable.EnsuredImmutable<MyClass> myEnsuredObject = MikValSor.Immutable.EnsuredImmutable.Create(myObject);
}
catch (MikValSor.Immutable.NotImmutableException)
{
System.Console.WriteLine($"myObject is mutable.");
}
//Immutable
var myOtherObject = new MyOtherClass("Value");
MikValSor.Immutable.EnsuredImmutable<MyOtherClass> myOtherEnsuredObject = MikValSor.Immutable.EnsuredImmutable.Create(myOtherObject);
System.Console.WriteLine($"myOtherEnsuredObject is immutable.");
System.Console.WriteLine($"myOtherEnsuredObject.Value: {myOtherEnsuredObject.Value}");
//Using extensions (using MikValSor.Immutable.Extensions)
MikValSor.Immutable.EnsuredImmutable<MyOtherClass> myOtherEnsuredObject2 = myOtherObject.EnsureImmutable();
System.Console.WriteLine($"myOtherEnsuredObject2.Value: {myOtherEnsuredObject2.Value}");
}
/**
Output:
myObject is mutable.
myOtherEnsuredObject is immutable.
myOtherEnsuredObject.Value: MyOtherClass
myOtherEnsuredObject2.Value: MyOtherClass
**/
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.5
- MikValSor.ImmutableValidator (>= 1.0.9)
- MikValSor.SerializableValidator (>= 1.0.4)
-
.NETStandard 2.0
- MikValSor.ImmutableValidator (>= 1.0.9)
- MikValSor.SerializableValidator (>= 1.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v1.0.2
- Fixed missing documentation
v1.0.1
- Upgraded to v1.0.9 of ImmutableValidator and utilize its singleton.
- Added EnsuredImmutableAndSerializable<T>
v1.0.0
- Initial release