Com.H 10.3.3

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Com.H" Version="10.3.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Com.H" Version="10.3.3" />
                    
Directory.Packages.props
<PackageReference Include="Com.H" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Com.H --version 10.3.3
                    
#r "nuget: Com.H, 10.3.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Com.H@10.3.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Com.H&version=10.3.3
                    
Install as a Cake Addin
#tool nuget:?package=Com.H&version=10.3.3
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed

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