/// <summary>
        /// Gets the single resource or resource identifier json:api meta object by resource identifier lookup.
        /// </summary>
        /// <typeparam name="TResource">Type of CLR resource.</typeparam>
        /// <typeparam name="TResourceId">Type of CLR resource identifier.</typeparam>
        /// <param name="clrResourceId">CLR resource identifier value to lookup the single json:api meta object with.</param>
        /// <returns>Returns the single json:api meta object if found, null otherwise.</returns>
        /// <exception cref="DocumentReadException">Is thrown if there are
        /// multiple CLR resources or resource identifiers with the same resource identifier for the given CLR resource type.</exception>
        public static Meta GetResourceMeta <TResource, TResourceId>(this IDocumentReader documentReader, TResourceId clrResourceId)
            where TResource : class, IResource
        {
            Contract.Requires(documentReader != null);

            var clrResourceType = typeof(TResource);
            var apiResourceMeta = documentReader.GetResourceMeta(clrResourceType, clrResourceId);

            return(apiResourceMeta);
        }