Interface IContentQueryModelTypeMapper
- Namespace
- CMS.ContentEngine
- Assembly
- CMS.ContentEngine.dll
Mapper which provides automatic mapping of IContentQueryDataContainer to content type model registered via RegisterContentTypeMappingAttribute.
public interface IContentQueryModelTypeMapper
- Extension Methods
Remarks
The interface could be extended in the future and does not support custom implementation.
Methods
Map<TModel>(IContentQueryDataContainer)
Maps the content query result IContentQueryDataContainer to a model of type TModel.
TModel Map<TModel>(IContentQueryDataContainer dataContainer)
Parameters
dataContainerIContentQueryDataContainerIContentQueryDataContainer containing data to be mapped to the model.
Returns
- TModel
TModelModel with mapped data from thedataContainer.
Type Parameters
TModelType of returned model.
Remarks
The mapping process follows this priority:
- If a model type is registered for the content type via RegisterContentTypeMappingAttribute and
TModelis assignable from the registered type, the registered type is used for mapping. - Otherwise,
TModelis used directly for mapping, but it must be a non-abstract class with a parameterless constructor.
dataContainer except for special cases:
- ContentItemFields property is mapped by type.
- Linked items are mapped to System.Collections.Generic.IEnumerable<T> property.
dataContainer will not be mapped.
Exceptions
- ArgumentNullException
Thrown when container is null.
- InvalidOperationException
Thrown when the data cannot be bound to the model e.g., the types of the properties doesn't match, the model type does not have parameterless constructor, when more types are registered to one content type name, or when
TModelis abstract class or does not have a parameterless constructor.