Esempio n. 1
0
 /// <summary>
 /// Uses <paramref name="instance"/> to call <paramref name="uri"/> via a HTTP GET and serializes the response.
 /// </summary>
 /// <typeparam name="TResult">Type of response value</typeparam>
 /// <param name="instance">The <see cref="IHttpClientRequestFactory"/> being extended.</param>
 /// <param name="uri">Relative uri of the service to call</param>
 /// <param name="query">A <see cref="RequestMessageBase"/> used to build query parameters.</param>
 /// <param name="queryString">An optional <see cref="IDictionary{TKey,TValue}"/> containing additional query parameters.</param>
 /// <returns>The resulting <typeparamref name="TResult"/>.</returns>
 /// <exception cref="WebException">Thrown if the service responds with an unsuccessful response.</exception>
 /// <exception cref="InvalidOperationException">Thrown if the service returns a null response.</exception>
 public static async Task <TResult> ServiceGet <TResult>(this IHttpClientRequestFactory instance, string uri, RequestMessageBase query,
                                                         IDictionary <string, string> queryString = default(IDictionary <string, string>))
     where TResult : class
 {
     queryString = query?.ToQueryDictionary(queryString) ?? throw new ArgumentNullException(nameof(query));
     return(await ServiceGet <TResult>(instance, uri, queryString));
 }