/// <summary>
        /// Sets field mapper for the specified <paramref name="field"/>
        /// </summary>
        /// <typeparam name="TSPItem">Exact SP list item type, i.e. SPListItem for SSOM, or ListItem for CSOM.</typeparam>
        /// <param name="field">Current field.</param>
        /// <param name="mapper">Instance of <see cref="FieldMapper{TSPItem}"/> that should be associated with specified <see cref="MetaField"/></param>
        /// <exception cref="ArgumentNullException"><paramref name="field"/> or <paramref name="mapper"/> is null.</exception>
        public static void SetMapper <TSPItem>([NotNull] this MetaField field, [NotNull] FieldMapper <TSPItem> mapper)
        {
            Guard.CheckNotNull(nameof(field), field);
            Guard.CheckNotNull(nameof(mapper), mapper);

            field.SetAdditionalProperty(MapperProperty, mapper);
        }
        /// <summary>
        /// Gets field mapper for the specified <paramref name="field"/>
        /// </summary>
        /// <typeparam name="TSPItem">Exact SP list item type, i.e. SPListItem for SSOM, or ListItem for CSOM.</typeparam>
        /// <param name="field">Current field.</param>
        /// <returns>Instance of <see cref="FieldMapper{TSPItem}"/> of the specified <see cref="MetaField"/></returns>
        /// <exception cref="ArgumentNullException"><paramref name="field"/> is null.</exception>
        public static FieldMapper <TSPItem> GetMapper <TSPItem>([NotNull] this MetaField field)
        {
            Guard.CheckNotNull(nameof(field), field);

            return(field.GetAdditionalProperty <FieldMapper <TSPItem> >(MapperProperty));
        }