private void AddResponseHandlers(RestClientSettings settings, IBuildContext context) { if (requestHandlers != null) { foreach (var handler in responseHandlers) { var requestHandler = handler.Instance as IRestResponseHandler; if (handler.Type != null) { requestHandler = context.Resolve(handler.Type) as IRestResponseHandler; } settings.ResponseHandlers.Add(requestHandler); } } }
private void AddSerializers(RestClientSettings settings, IBuildContext context) { if (serializers != null) { settings.Serializers.Clear(); foreach (var handler in serializers) { var requestHandler = handler.Instance as IContentSerializer; if (handler.Type != null) { requestHandler = context.Resolve(handler.Type) as IContentSerializer; } settings.Serializers.Add(requestHandler); } } }
public IRestClientSettings Build(IBuildContext context) { if (serviceBaseUri == null) { throw new InvalidOperationException("No base URI address specified."); } var settings = new RestClientSettings { BaseUri = serviceBaseUri, MessageHandler = messageHandler, Authenticator = requestAuthenticator, AuthenticateRequests = authenticate ?? requestAuthenticator != null, DefaultFormat = defaultFormat == ContentFormat.Default ? ContentFormat.Json : defaultFormat, DefaultCulture = defaultCulture ?? CultureInfo.InvariantCulture, ContentTypeProvider = contentTypeProvider ?? new DefaultContentTypeProvider(), ContentEncoding = contentEncoding ?? Encoding.UTF8 }; AddRequestHandlers(settings, context); AddResponseHandlers(settings, context); AddSerializers(settings, context); return(settings); }