using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public class PersonName : Properties.IPersonName { protected readonly PersonNameFirst _First; // {-_-}SingletonClass protected readonly PersonNameMiddle _Middle; // {-_-}SingletonClass protected readonly PersonNameLast _Last; // {-_-}SingletonClass protected readonly PersonNameAlias _Alias; // {-_-}SingletonClass public PersonNameFirst First => _First; // {-_-}SingletonClass public PersonNameMiddle Middle => _Middle; // {-_-}SingletonClass public PersonNameLast Last => _Last; // {-_-}SingletonClass public PersonNameAlias Alias => _Alias; // {-_-}SingletonClass [JsonConstructor] public PersonName ( PersonNameFirst first, PersonNameMiddle middle, PersonNameLast last, PersonNameAlias alias ) { _First = first; // {-_-}SingletonClass _Middle = middle; // {-_-}SingletonClass _Last = last; // {-_-}SingletonClass _Alias = alias; // {-_-}SingletonClass } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } // ... }