GsId
GsId est un readonly struct implementant IEquatable<GsId> et IFormattable.
Creation et parsing
GsId.Empty;
GsId.NewGsId();
GsId.Parse(value);
GsId.TryParse(value, out var result);
Etat et octets
id.IsEmpty;
byte[] bytes = id.ToByteArray();
Formatage
id.ToString();
id.ToString(GsIdFormat.N);
id.ToString(GsIdFormat.D, GsIdCase.Lower);
id.ToNormalizedString();
id.ToNormalizedString(GsIdCase.Lower);
id.ToString("n", null);
TryFormat(Span<char>, out int, ...) permet d ecrire dans un buffer existant. Les formats N, D, n et d suivent les memes conventions que les autres implementations.
GsIdParser
GsIdParser.Parse(value);
GsIdParser.TryParse(value, out var result);
GsIdParser.Normalize(value);
GsIdParser.Normalize(value, GsIdCase.Lower);
Le parseur valide les longueurs 64/69, les caracteres hexadecimaux et les positions officielles des tirets du format D.
GsIdValidator
GsIdValidator.IsValid(value);
GsIdValidator.IsValid(value, GsIdFormat.N);
GsIdValidator.IsValid(value, GsIdFormat.D);
GsIdOptions
Proprietes globales :
DefaultCaseDefaultTextFormatDefaultJsonFormatDefaultDatabaseFormatIsLocked
Methodes :
GsIdOptions.Configure(...);
GsIdOptions.Lock();
GsIdOptions.Reset();
Les valeurs par defaut sont Upper, D, D, N.
GsIdOptionsConfiguration
Cette classe charge les options GsId depuis Microsoft.Extensions.Configuration. Elle permet de centraliser la configuration dans appsettings.json et d appliquer eventuellement le verrouillage apres chargement.
GsIdJsonConverter
GsIdJsonConverter derive de JsonConverter<GsId> et supporte :
new GsIdJsonConverter();
new GsIdJsonConverter(GsIdFormat.N);
new GsIdJsonConverter(GsIdFormat.D, GsIdCase.Lower);
La lecture attend une chaine JSON non vide. L ecriture utilise soit le format/casse fournis au constructeur, soit GsIdOptions.DefaultJsonFormat et DefaultCase.
Types auxiliaires
GsIdCase:Upper,Lower;GsIdFormat:N,D;GsIdConstants: longueurs et constantes du format ;GsIdGenerator: generation aleatoire ;GsIdException: exception specifique GsId.