dotnet add package Valobtify
public class Price : ValueObject
{
public decimal Amount { get; set; }
public string Currency { get; set; }
public override IEnumerable<object?> GetAtomicValues()
{
return [Amount, Currency];
}
}
public class UserName : SingleValueObject<string>
{
public UserName(string value)
{
if (value.Length > 20)
throw new Exception("Name is not valid!");
Value = value;
}
}
public class UserName : SingleValueObject<string>
{
[MaxLength(20)]
public override required string Value { get; init; }
}