ObjectSemantics.NET
7.1.0
dotnet add package ObjectSemantics.NET --version 7.1.0
NuGet\Install-Package ObjectSemantics.NET -Version 7.1.0
<PackageReference Include="ObjectSemantics.NET" Version="7.1.0" />
<PackageVersion Include="ObjectSemantics.NET" Version="7.1.0" />
<PackageReference Include="ObjectSemantics.NET" />
paket add ObjectSemantics.NET --version 7.1.0
#r "nuget: ObjectSemantics.NET, 7.1.0"
#:package ObjectSemantics.NET@7.1.0
#addin nuget:?package=ObjectSemantics.NET&version=7.1.0
#tool nuget:?package=ObjectSemantics.NET&version=7.1.0
ObjectSemantics.NET
Object-to-template mapping for .NET with nested property support, loops, conditions, formatting, and lightweight calculations.
Why ObjectSemantics.NET
Use it when you need fast, readable template mapping for:
- Email and SMS templates
- Receipts, invoices, and reports
- Notification payloads
- Config and log rendering
Features
- Direct property mapping:
{{ Name }} - Nested property mapping:
{{ Customer.BankingDetail.BankName }} - Collection loops:
{{ #foreach(Items) }}...{{ #endforeach }} - Conditional blocks:
{{ #if(Age >= 18) }}...{{ #else }}...{{ #endif }} - Built-in formatting for number/date/string
- XML escaping option (
XmlCharEscaping = true) - Calculation functions:
sum,avg,count,min,maxcalcarithmetic expressions
Installation
Install from NuGet:
Install-Package ObjectSemantics.NET
Quick Start
using ObjectSemantics.NET;
var person = new Person { Name = "John Doe" };
string output = person.Map("Hello {{ Name }}");
// Hello John Doe
Template Examples
Nested mapping
var payment = new CustomerPayment
{
Amount = 100000000,
Customer = new Customer
{
CompanyName = "CRUDSOFT TECHNOLOGIES"
}
};
string result = payment.Map("Paid Amount: {{ Amount:N2 }} By {{ Customer.CompanyName }}");
// Paid Amount: 100,000,000.00 By CRUDSOFT TECHNOLOGIES
Loop + format
string template = "{{ #foreach(Items) }}[{{ Quantity }}x{{ Name }}={{ LineTotal:N2 }}]{{ #endforeach }}";
Condition
string template = "{{ #if(IsPaid == true) }}PAID{{ #else }}UNPAID{{ #endif }}";
Calculations
// Aggregates
"{{ __sum(Customer.Payments.Amount):N2 }}"
"{{ _avg(Customer.Payments.PaidAmount):N2 }}"
"{{ __count(Customer.Payments.Amount) }}"
// Arithmetic expression
"{{ __calc(PaidAmount - Customer.CreditLimit):N2 }}"
Documentation
Detailed wiki files are available at the Wiki Page:
Contributing
Contributions are welcome through issues and pull requests.
License
| 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 | 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
- 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 | |
|---|---|---|---|
| 7.1.0 | 128 | 3/6/2026 | |
| 7.0.2 | 183 | 1/5/2026 | |
| 7.0.1 | 279 | 10/29/2025 | |
| 7.0.0 | 241 | 10/7/2025 | |
| 6.0.5 | 633 | 7/23/2025 | |
| 6.0.4 | 610 | 5/19/2024 | |
| 6.0.3 | 269 | 5/19/2024 | |
| 6.0.2 | 592 | 5/16/2023 | |
| 6.0.1 | 376 | 4/14/2023 | |
| 5.1.5 | 339 | 4/12/2023 | |
| 5.1.4 | 353 | 4/12/2023 | |
| 5.1.3 | 362 | 4/11/2023 | |
| 5.1.2 | 350 | 4/10/2023 | |
| 5.0.1 | 361 | 4/7/2023 | |
| 4.0.1 | 397 | 4/7/2023 | |
| 3.0.2 | 660 | 1/13/2023 |
. Added support for single arrays Loop Support
. Added encoding string formattings
ToMD5
ToBase64
FromBase64
. Added template extension method to allow mapping directly from Template