-
Notifications
You must be signed in to change notification settings - Fork 1
Known Limitations
Arnel Robles edited this page Sep 28, 2026
·
1 revision
❌ Not Supported:
- Async mapping operations
- Source/destination value injection (context passing)
- Open generic types
- Explicit type conversion configuration beyond built-ins
✅ Supported via Extension Packages:
- Custom naming conventions (PascalCase ↔ snake_case):
Mapsicle.NamingConventions - Post-mapping validation:
Mapsicle.Validation
- Cycles are not preserved. A self-referencing object maps as nested copies down to
MaxDepth, then stops at the repeated instance, where AutoMapper keeps the reference. - EF Core ProjectTo works with
ForMemberexpressions, but notResolveUsingdelegates
-
Circular references: Expanded to
MaxDepthnested copies, then the repeated member is left null. Nothing throws, and the reference is not preserved -
Null safety: More aggressive null-safe navigation (fewer NullReferenceException). A null
reference-typed source mapped to a
stringdestination yieldsnullrather than throwing. -
Map(destination)is not atomic: it writes properties in order, so a setter that throws part-way leaves the earlier ones already written. Map into a fresh instance if you need all-or-nothing. -
Exceptions from your accessors propagate unwrapped: a getter throwing
InvalidOperationExceptionsurfaces asInvalidOperationException, not wrapped inTargetInvocationException. -
Unmapped properties: Silent (use
GetUnmappedPropertiesfor validation) - Cache behavior: Default is unbounded (must opt-in to LRU)
| .NET Version | Mapsicle Support |
|---|---|
| .NET 10.0 | ✅ Fully supported, tested on every build |
| .NET 8.0 | ✅ Fully supported, tested on every build (end of life 10 Nov 2026) |
| .NET 6.0-7.0 | ✅ Via .NET Standard 2.0 |
| .NET 5.0 | ✅ Via .NET Standard 2.0 |
| .NET Core 2.0+ | ✅ Via .NET Standard 2.0 |
| .NET Framework 4.6.1+ | ✅ Via .NET Standard 2.0 |
The netstandard2.0 assemblies are exercised by their own test project, which forces that asset rather than the net8.0 one and asserts it really loaded it. Before 2.0.0 they were built, packed and published without a test ever loading them.
Mapsicle
Packages
- Core
- Fluent
- EntityFramework
- Validation
- NamingConventions
- Serilog
- Dapper
- AspNetCore
- Json
- Caching
- Audit
- DataAnnotations
Reference