/// <summary>
 /// Adds an HMAC header to a HttpClient using the provided header generator
 /// </summary>
 /// <param name="client">The client that will be used to make the request</param>
 /// <param name="requestUri">The Uri that the request will be sent to</param>
 /// <param name="method">The method that the request will be used</param>
 /// <param name="headerGenerator">The header generator to use (this will not be registered)</param>
 /// <exception cref="NullReferenceException">If no valid header generator was passed</exception>
 public static void AddHmacHeadersWithGenerator(this HttpClient client, Uri requestUri, HttpMethod method,
                                                HmacHeaderGenerator headerGenerator)
 {
     if (headerGenerator == null)
     {
         throw new NullReferenceException("No valid header generator passed.");
     }
     client.AddHmacHeadersWithGenerator(requestUri, method, null, headerGenerator);
 }
 /// <summary>
 /// Registers a header generator, overwrites the currently registered header generator if applicable
 /// </summary>
 /// <param name="headerGenerator">The header generator to register</param>
 public static void RegisterHeaderGenerator(this HmacHeaderGenerator headerGenerator)
 {
     _registeredGenerator = headerGenerator;
 }
 /// <summary>
 /// Checks if there is a registered headergenerator
 /// </summary>
 /// <param name="headerGenerator">The header generator to use (this will not be registered)</param>
 /// <returns>If there is a registered header generator</returns>
 public static bool IsAnyHeaderGeneratorRegistered(this HmacHeaderGenerator headerGenerator)
 {
     return(IsAnyHeaderGeneratorRegisteredProp);
 }