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 content type model registered via RegisterContentTypeMappingAttribute and casts it to TModel
.
TModel Map<TModel>(IContentQueryDataContainer dataContainer)
Parameters
dataContainer
IContentQueryDataContainerIContentQueryDataContainer containing data to be mapped to the model.
Returns
- TModel
TModel
Model with mapped data from thedataContainer
.
Type Parameters
TModel
Type of returned model.
Remarks
The properties of the TModel
model are mapped case insensitive by the name, so their names and types need to match the names and types in 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.
- ArgumentException
Thrown when no model was registered for
dataContainer
content type.- InvalidOperationException
Thrown when the data cannot be bound to the model e.g., the types of the properties doesn't match, the registered model type does not have parameterless constructor or when more types are registered to one content type name.