Monify 1.0.0
dotnet add package Monify --version 1.0.0
NuGet\Install-Package Monify -Version 1.0.0
<PackageReference Include="Monify" Version="1.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="Monify" Version="1.0.0" />
<PackageReference Include="Monify"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Monify --version 1.0.0
#r "nuget: Monify, 1.0.0"
#:package Monify@1.0.0
#addin nuget:?package=Monify&version=1.0.0
#tool nuget:?package=Monify&version=1.0.0
Monify

Monify, a .NET Roslyn source generator, automates the creation of strongly-typed wrappers around single values, improving semantic clarity, type safety, and maintainability.
Installation
To install Monify, use the following command in your package manager console:
install-package Monify
Usage
Monify turns a class
, record
, or struct
into a strongly typed wrapper around a single value. To opt in, annotate a partial
type with the Monify
attribute and specify the encapsulated value type.
using Monify;
[Monify<int>]
public partial struct Age;
For language versions earlier than C# 11:
using Monify;
[Monify(Type = typeof(int))]
public partial struct Age;
Generated Members
When applied, Monify generates the boilerplate needed for a lightweight value object:
- A private readonly field
_value
that stores the encapsulated value. - A constructor accepting the underlying value:
Age(int value)
. - Implicit conversion operators to and from the encapsulated type.
- Implementations of
IEquatable<Age>
andIEquatable<int>
. - Equality (
==
) and inequality (!=
) operators for comparing with other instances or with the underlying value. - Overrides of
Equals(object)
,GetHashCode()
, andToString()
.
Example
Age age = 42; // implicit conversion from int
int value = age; // implicit conversion to int
if (age == value)
{
// comparisons work with both Age and int
}
Classes annotated with Monify
are sealed
automatically to preserve immutability. Types must be partial
and cannot declare additional state; the included analyzers will warn when these guidelines are not followed.
Analyzers
Monify includes several analyzers to assist engineers with its usage. These are:
Rule ID | Category | Severity | Notes |
---|---|---|---|
MONFY01 | Usage | Warning | Type is not compatible with Monify |
MONFY02 | Usage | Warning | Type is not Partial |
MONFY03 | Design | Error | Type captures State |
MONFY04 | Design | Error | Self Referencing Type |
Contributing
Contributions are welcome - see the CONTRIBUTING.md file for details.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 0 | 8/22/2025 |