{"id":25165589,"url":"https://github.com/ultimaweapon/dotnet-extensions","last_synced_at":"2026-05-11T05:44:01.145Z","repository":{"id":43491466,"uuid":"493726426","full_name":"ultimaweapon/dotnet-extensions","owner":"ultimaweapon","description":"A collection of lightweight .NET libraries for missing features","archived":false,"fork":false,"pushed_at":"2023-06-13T01:56:32.000Z","size":68,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T07:11:24.828Z","etag":null,"topics":["csharp","dotnet"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ultimaweapon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-18T15:43:00.000Z","updated_at":"2025-01-22T13:03:59.000Z","dependencies_parsed_at":"2025-02-09T05:39:22.720Z","dependency_job_id":"6fff8df8-d476-4d36-b07a-3f07b6aefafb","html_url":"https://github.com/ultimaweapon/dotnet-extensions","commit_stats":null,"previous_names":["ultimaweapon/dotnet-extensions","ultimicro/dotnet-extensions"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultimaweapon%2Fdotnet-extensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultimaweapon%2Fdotnet-extensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultimaweapon%2Fdotnet-extensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultimaweapon%2Fdotnet-extensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ultimaweapon","download_url":"https://codeload.github.com/ultimaweapon/dotnet-extensions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247043324,"owners_count":20874085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dotnet"],"created_at":"2025-02-09T05:39:22.859Z","updated_at":"2026-05-11T05:43:56.109Z","avatar_url":"https://github.com/ultimaweapon.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# .NET Extensions\n\nThis is a collection of lightweight .NET libraries providing some missing features. These libraries has been using on production environment of [Cloudsumé](https://cloudsume.com) so it is production ready.\n\n## 📦 Ultima.Extensions.Collections\n[![Nuget](https://img.shields.io/nuget/v/Ultima.Extensions.Collections)](https://www.nuget.org/packages/Ultima.Extensions.Collections)\n\nProvides additional types and methods for handle collections.\n\n| Type                  | Description                                                |\n| --------------------- | ---------------------------------------------------------- |\n| DictionaryExtensions  | A collection of extension methods for `Dictionary`.        |\n| KeyedByTypeCollection | A collection to store unique items identified by its type. |\n| TypeComparer          | Provides implementations of `IComparer` for `Type`.        |\n\n## 📦 Ultima.Extensions.CommandLine\n[![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/Ultima.Extensions.CommandLine)](https://www.nuget.org/packages/Ultima.Extensions.CommandLine)\n\nProvides some utilities and missing features for [System.CommandLine](https://www.nuget.org/packages/System.CommandLine).\n\n| Type           | Description                                                                   |\n| -------------- | ----------------------------------------------------------------------------- |\n| CommandHandler | An implementation of `ICommandHandler` that automatic handle interupt signal. |\n\n## 📦 Ultima.Extensions.Currency\n[![Nuget](https://img.shields.io/nuget/v/Ultima.Extensions.Currency)](https://www.nuget.org/packages/Ultima.Extensions.Currency)\n\nProvides some types to handling currency.\n\n| Type         | Description                               |\n| ------------ | ----------------------------------------- |\n| CurrencyCode | Provides type safety for a currency code. |\n| CurrencyInfo | Provides details for a currency.          |\n\nAvailable `CurrencyInfo` implementation:\n\n| Type               | Wikipedia                                          |\n| ------------------ | -------------------------------------------------- |\n| Euro               | https://en.wikipedia.org/wiki/Euro                 |\n| IndianRupee        | https://en.wikipedia.org/wiki/Indian_rupee         |\n| JapaneseYen        | https://en.wikipedia.org/wiki/Japanese_yen         |\n| NigerianNaira      | https://en.wikipedia.org/wiki/Nigerian_naira       |\n| PakistaniRupee     | https://en.wikipedia.org/wiki/Pakistani_rupee      |\n| PhilippinePeso     | https://en.wikipedia.org/wiki/Philippine_peso      |\n| SingaporeDollar    | https://en.wikipedia.org/wiki/Singapore_dollar     |\n| SouthKoreanWon     | https://en.wikipedia.org/wiki/South_Korean_won     |\n| Sterling           | https://en.wikipedia.org/wiki/Pound_sterling       |\n| ThaiBaht           | https://en.wikipedia.org/wiki/Thai_baht            |\n| UnitedStatesDollar | https://en.wikipedia.org/wiki/United_States_dollar |\n\n**Please note that `CurrencyCode.Parse` will accept any valid currency, including a test currency with XTS code. You MUST check `CurrencyInfo.IsOfficial` when accepting a currency from the user.**\n\n### Breaking changes\n\n#### 1.0 to 2.0\n\n`CurrencyCode` was changed from `struct` to `class`.\n\n## 📦 Ultima.Extensions.DataValidation\n[![Nuget](https://img.shields.io/nuget/v/Ultima.Extensions.DataValidation)](https://www.nuget.org/packages/Ultima.Extensions.DataValidation)\n\nAdditionals `System.ComponentModel.DataAnnotations.ValidationAttribute` implementation.\n\n| Type                 | Description                                                   |\n| -------------------- | ------------------------------------------------------------- |\n| NonNegativeAttribute | Specifies that the number must be greater or equal than zero. |\n| PositiveAttribute    | Specifies that the number must be greater than zero.          |\n| UniqueAttribute      | Specifies that the item in a collection must be unique.       |\n\n## 📦 Ultima.Extensions.Json\n[![Nuget](https://img.shields.io/nuget/v/Ultima.Extensions.Json)](https://www.nuget.org/packages/Ultima.Extensions.Json)\n\nProvides additional types and methods to works with `System.Text.Json`.\n\n### JsonConverter implementations\n\n| Converter            | Target type                      |\n| -------------------- | -------------------------------- |\n| CultureInfoConverter | System.Globalization.CultureInfo |\n| MailAddressConverter | System.Net.Mail.MailAddress      |\n| RegionInfoConverter  | System.Globalization.RegionInfo  |\n\nYou can register the converter to want by adding its instance to `System.Text.Json.JsonSerializerOptions.Converters`. You can use `System.Text.Json.JsonSerializerOptions.AddSystemTypeConverters` extension method to register all of the additional converters.\n\n### System.Text.Json.JsonSerializerOptions extension methods\n\n| Method                  | Description                                                                                                                    |\n| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------|\n| AddSystemTypeConverters | Register all of additional converters.                                                                                         |\n| NormalizeProperty       | Normalize the specified property name according to `System.Text.Json.JsonSerializerOptions.PropertyNamingPolicy` if available. |\n\n## 📦 Ultima.Extensions.Primitives\n[![Nuget](https://img.shields.io/nuget/v/Ultima.Extensions.Primitives)](https://www.nuget.org/packages/Ultima.Extensions.Primitives)\n\nProvides additional types to work with .NET fundamental types.\n\n| Type       | Description                                                                 |\n| ---------- | --------------------------------------------------------------------------- |\n| UriBuilder | An alternative to `System.UriBuilder` with more powerful and easier to use. |\n| Uuid       | Provides some static methods to convert between Guid and UUID.              |\n| YearMonth  | A struct to represent year and month without day.                           |\n\n## 📦 Ultima.Extensions.Security\n[![Nuget](https://img.shields.io/nuget/v/Ultima.Extensions.Security)](https://www.nuget.org/packages/Ultima.Extensions.Security)\n\nProvides additional types and methods for types in `System.Security` namespace.\n\n| Type                       | Description                                              |\n| -------------------------- | -------------------------------------------------------- |\n| ClaimsPrincipalExtensions  | A collection of extension methods for `ClaimsPrincipal`. |\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimaweapon%2Fdotnet-extensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultimaweapon%2Fdotnet-extensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimaweapon%2Fdotnet-extensions/lists"}