private bool ShouldSkipProperty(AccessorMember member, OperationContext operationContext)
        {
            var name = member.Name;

            if (name == nameof(ITableEntity.PartitionKey) ||
                name == nameof(ITableEntity.RowKey) ||
                name == nameof(ITableEntity.Timestamp) ||
                name == nameof(ITableEntity.ETag))
            {
                return(true);
            }

            if (!member.CanRead || !member.CanWrite)
            {
                _logger?.LogInformation(
                    "Omitting property '{0}' from serialization/de-serialization because the property's getter/setter are not public.",
                    member.Name);

                return(true);
            }

            if (member.HasAttribute <IgnorePropertyAttribute>())
            {
                _logger?.LogInformation(
                    FormatLine(operationContext,
                               $"Omitting property '{0}' from serialization/de-serialization because {nameof(IgnorePropertyAttribute)} has been set on that property.",
                               member.Name));

                return(true);
            }

            return(false);
        }
 public bool IsIgnored(AccessorMember member)
 {
     return(member.HasAttribute <NotMappedAttribute>());
 }