SimpleTextMerger 1.0.0
dotnet add package SimpleTextMerger --version 1.0.0
NuGet\Install-Package SimpleTextMerger -Version 1.0.0
<PackageReference Include="SimpleTextMerger" Version="1.0.0" />
<PackageVersion Include="SimpleTextMerger" Version="1.0.0" />
<PackageReference Include="SimpleTextMerger" />
paket add SimpleTextMerger --version 1.0.0
#r "nuget: SimpleTextMerger, 1.0.0"
#:package SimpleTextMerger@1.0.0
#addin nuget:?package=SimpleTextMerger&version=1.0.0
#tool nuget:?package=SimpleTextMerger&version=1.0.0
SimpleTextMerger
SimpleTextMerger is an open source library for replacing certain keys in the text with values from the provided object.
At the first step use MergerBuilder to configure text IMerger object, that will select keys from source text and replace them by values from provided object.
var builder = new MergeBuilder();
var merger = builder.AddDefaultSelectorFor(object).Build();
Then you can use Merge on your text
var result = merger.Merge(text);
Sometimes we can`t use default selectors like 'Person.Address.Street'.
For example we need to select higher value from array and replace particular key by this value.
For this approach we can use FunctionalSelector, or crete specific one by implementing ISelector interface and then configuring this in MergerBuilder.
Also we need to add token provider that parses this specific key from text.
var builder = new MergeBuilder();
var merger = builder
.AddTokenProvider(new RegexTokenProvider())
.AddTokenProvider(new CustomKeyTokenProvider())
.AddDefaultSelectorFor(obj)
.AddSelector(new FunctionalSelector(token => FuncSelector(token, obj)))
.Build();
/* .... */
private static string FuncSelector(string token, object obj)
{
if (token is "$HigherValue") return obj.SomeArray.Max();
return null;
}
Also we can specify the behavior of merger when value is null or key is not found
SelectorBehavior.Ignore // just ignores missed key and lefts as it is
SelectorBehavior.SetEmpty // replacing missed key by empty value
SelectorBehavior.Exception // throws exception
Example of code:
var builder = new MergeBuilder();
var merger = builder.AddDefaultSelectorFor(obj)
.SetMergeBehavior(SelectorBehavior.Ignore)
.Build();
var result = merger.Merge(text);
| 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 was computed. 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 was computed. 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 was computed. 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 | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 401 | 3/12/2022 |