Project Description
FluentOMapper (FOM) is a framework to describe an execute mappings from objects tree to others using their properties (getters and setters).
It uses lambda expressions to describe mapping, so refactoring is simple.
Easy to use either for DTO or complex situations, FOM provides a framework that can be extended to match your needs.
It supports converters, mapping on arrays/list, conditionnal mappings, overriding types, etc ...

- Map an objet tree to another: taking each described properties from a source and set it into an existing target. If not target specified, FOM will create a new set when required by the mapping.
- Create new instance of a mapped property instead of using the existing one. Used to do partial or total replacement.
- Override source and/or target type. Useful when mapping from/to interfaces or abstract, or to convert from type to another.
- Map arrays/list … to another (using embedded converter), and sub-map inner objects of the array to ensure continuity.
- Use embedded converters, or extends with yours, to achieve complex / specific mappings.
- Use embeded conditions,or extends with yours, to apply the mapping (or not).
- Cache your mapped objects for advanced capabilities (like maintaining references existing in original objects)
- Tune some behaviors to match your needs.

Typical uses
- Write DTO (data transfert objet), like NHibernate or web entities, where lazy load considérations may apply).
- Use with WCF to transfert / convert objets, mainly for generic lists that are read only.
- Clonning
- Object manipulation / extraction

I took on my personnal time to create FOM, according to situations I met. So, it may not fit your needs.
But your help is welcome to improve FOM. Il you think that there are mistakes in documentation, or bugs, or documentation is not clear enough on some points, you can contact me : contact (at)
If you think that concepts may be implemented, contact me to explain the concept. If retained, I will find time to include it in FOM.
I'll do my best to answer ;-).

Last edited Jan 3, 2013 at 8:15 AM by softisis, version 13