If you include:

using AgileObjects.AgileMapper.Extensions;

...mapping can be performed via extension methods. For example:

// Create a new CustomerViewModel from a Customer:
var customerViewModel = customer.Map().ToANew<CustomerViewModel>();

// Deep-clone a Customer:
var clonedCustomer = customerToBeCloned.DeepClone();

// Update a Customer from a CustomerSaveRequest

// Merge a CustomerDto onto a Customer:

Using an Instance-Scoped Mapper

Mappings performed via these extension methods use the default mapper - the same one you map with via the static Mapper API. To use an instance mapper with an extension method, use:

// Deep-clone a Customer using 
// the given instance-scoped mapper:
var clonedCustomer = customer

// Update a Customer from a CustomerSaveRequest using
// the given instance-scoped mapper:

// etc.

Configuring Inline

You can also configure extension-method mappings inline, for example:

var customerSaveRequest = customerDto.Map().ToANew<CustomerSaveRequest>(cfg => cfg
    .Map((dto, csr) => dto.Id)
    .To(csr => csr.CustomerId));

...and combine that with an instance-scoped mapper, for example:

    .Over(customer, cfg => cfg
        .Map((csr, c) => csr.AddressSaveRequest)
        .To(c => c.Address));