Com.H
10.3.3
See the version list below for details.
dotnet add package Com.H --version 10.3.3
NuGet\Install-Package Com.H -Version 10.3.3
<PackageReference Include="Com.H" Version="10.3.3" />
<PackageVersion Include="Com.H" Version="10.3.3" />
<PackageReference Include="Com.H" />
paket add Com.H --version 10.3.3
#r "nuget: Com.H, 10.3.3"
#:package Com.H@10.3.3
#addin nuget:?package=Com.H&version=10.3.3
#tool nuget:?package=Com.H&version=10.3.3
Com.H
Kindly visit the project's github page for documentation https://github.com/H7O/Com.H
Target Frameworks
This package multi-targets the following frameworks from a single NuGet package:
| Target | Minimum Runtime |
|---|---|
| netstandard2.0 | .NET Framework 4.6.1+, .NET Core 2.0+, Xamarin, Unity, UWP |
| net8.0 | .NET 8 |
| net9.0 | .NET 9 |
| net10.0 | .NET 10 |
As of 10.2.0 the netstandard2.0 build is at full public-API parity with the modern targets — async streams via IAsyncEnumerable<T>, the System.Text.Json helpers and the streaming base64-to-file helpers are all available everywhere. Where a modern BCL API is used internally, netstandard2.0 falls back to an equivalent implementation rather than dropping the feature. The full test suite runs against the netstandard2.0 build on .NET Framework 4.8.1 as well as against the modern build.
The net8.0/net9.0/net10.0 targets have no package dependencies. netstandard2.0 additionally brings in Microsoft.CSharp, System.Text.Json and Microsoft.Bcl.AsyncInterfaces.
Note: The separate 2.0.0.x netstandard2.0 package line has been retired. All framework targets are now served by this single package.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.13)
- Microsoft.CSharp (>= 4.7.0)
- System.Text.Json (>= 10.0.13)
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Com.H:
| Package | Downloads |
|---|---|
|
Com.H.Threading.Scheduler
An easy to use, simple yet feature-rich open-source framework for writing middlewares in the form of low resource footnote Windows services, Linux Daemons or containerized microservices. Takes care of multi-threaded service granular scheduling, shutdowns, restarts, error recovery. |
|
|
Com.H.Threading.Scheduler.DI
Dependency injection extension for Com.H.Threading.Scheduler API to facilitate easier usage for applications that utilize IHostBuilder services DI pipeline |
|
|
Com.H.Threading.Scheduler.VP.Sql
Sql server value processor for Com.H.Threading.Scheduler library |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.3.4 | 303 | 10/19/2026 |
| 10.3.3 | 163 | 10/17/2026 |
| 10.3.2 | 285 | 10/4/2026 |
| 10.3.1 | 117 | 10/3/2026 |
| 10.3.0 | 298 | 8/22/2026 |
| 10.2.0 | 172 | 7/29/2026 |
| 10.1.0.2 | 153 | 7/27/2026 |
| 10.1.0 | 339 | 4/6/2026 |
| 10.0.0 | 626 | 11/13/2025 |
| 9.0.0.6 | 318 | 10/30/2025 |
| 9.0.0.5 | 297 | 10/7/2025 |
| 9.0.0.4 | 335 | 9/8/2025 |
| 9.0.0.3 | 410 | 8/5/2025 |
| 9.0.0.1 | 284 | 7/11/2025 |
| 9.0.0 | 343 | 12/8/2024 |
| 8.0.0.18 | 318 | 11/28/2024 |
| 8.0.0.17 | 304 | 10/12/2024 |
| 2.0.0.12 | 285 | 10/26/2025 |
| 2.0.0.11 | 385 | 4/15/2025 |
| 2.0.0.10 | 300 | 3/2/2025 |
10.3.3
Fixes in TextExtensions.Fill and FillDate, which Com.H.Text.Template's rendering also uses:
* Fixed: a value was read again after it was written. A placeholder inside a value was filled too,
and removing a placeholder could join the text around it into a new one. Each placeholder is now
replaced once, in the text as written, and the text of a value stays as it is.
* Fixed: with several QueryParams sets, a set that doesn't have a name wrote its NullReplacement
before an earlier set could fill it, so in a template, a placeholder from the data model used
inside a data tag's rows became "null". Of the sets whose markers find a placeholder, the latest
one that has its name now fills it (with its NullReplacement when the value is null); when none
of them has it, it gets the NullReplacement of the latest of them.
* Fixed: placeholders are now matched character by character, whatever the culture, and names are
still looked up ignoring case. The culture-aware comparison used before could give a placeholder
another one's value, for example one that differs only by a soft hyphen. With QueryParams sets,
a marker written in another case is no longer filled either: {J{a}} for the marker {j{ used to be
filled whenever {j{a}} also appeared.
* Fixed: markers are now matched as written. With markers that contain regex characters, such as
[[ ]], (( )) or || ||, Fill with QueryParams sets found nothing, and Fill with a data model wrote
nullValueReplacement into the wrong places, such as between every character.
* Fixed: a $ in a replacement was read as a regex substitution, so $0 wrote the placeholder back
and $$ became $: in nullValueReplacement on every target, and with QueryParams sets on
netstandard2.0 (and so .NET Framework), in a value or a NullReplacement.
* Fixed: Fill given a list of QueryParams as an object dropped each set's DataModel when neither
markers nor a null replacement were given, so every placeholder got its NullReplacement, and
ignored the markers and the null replacement when they were given.
* Fixed: Fill with a data model threw InvalidCastException for a value that isn't IConvertible,
such as a Guid, DateTimeOffset or TimeSpan. Such a value is now written with its own formatting,
in the invariant culture like that overload's other values.
* Fixed: two names that differ only in case got the same value. In FillDate, {date{mm}} took the
month of {date{MM}}; in Fill with a data model that has both keys, both placeholders took the
value of the key listed first. Each now takes the value for its own spelling.
* Fixed: Fill with a data model but without both markers applied nullValueReplacement to the whole
text. With no marker it was written between every character, with only an opening marker it
replaced every one left over, and with only a closing marker it replaced the text before each
one left over. Without both markers, text with no value now stays as it is.
Upgrading from an earlier version? A value that holds a placeholder is no longer filled by a later
pass: fill that value first and pass the result. 10.3.1 changed what IOExtensions.UnifyPathSeperator
does with a leading // or \\ on Windows, and 10.3.0 changed how Com.H.Shell and Com.H.Pdf behave.
The notes of 10.3.0, 10.3.1 and 10.3.2 list every change:
https://www.nuget.org/packages/Com.H/10.3.2#releasenotes-body-tab
https://www.nuget.org/packages/Com.H/10.3.1#releasenotes-body-tab
https://www.nuget.org/packages/Com.H/10.3.0#releasenotes-body-tab