Skip to content

A package for implementing the 'Value Object' pattern.

License

Notifications You must be signed in to change notification settings

M0BIN-V/Valobtify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NuGet Package

Table of content

Installation

dotnet add package Valobtify

Usage

public class Price : ValueObject
{
    public decimal Amount { get; set; }
    public string Currency { get; set; }

    public override IEnumerable<object?> GetAtomicValues()
    {
        return [Amount, Currency];
    }
}

Single-Value Objects

public class UserName : SingleValueObject<string>
{
    public UserName(string value)
    {
        if (value.Length > 20)
            throw new Exception("Name is not valid!");

        Value = value;
    }
}

Using Data Annotation

public class UserName : SingleValueObject<string>
{
    [MaxLength(20)]
    public override required string Value { get; init; }
}

About

A package for implementing the 'Value Object' pattern.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages