internal static T Create <T>(IWebInterfaceContractResolver resolver, WebInvoker invoker)
        {
            T value = Create <T, WebDispatchProxy>();
            WebDispatchProxy proxy = value as WebDispatchProxy;

            proxy._invoker  = invoker;
            proxy._resolver = resolver;
            return(value);
        }
        public SteamWebClient(SteamWebConfig config) : base(config)
        {
            config = GetConfig <SteamWebConfig>();
            if (config.InvokerProvider == null)
            {
                _invoker = new WebInvoker(this);
            }
            else
            {
                _invoker = config.InvokerProvider(this) ?? new WebInvoker(this);
            }

            if (config.ResolverProvider == null)
            {
                _contractResolver = DefaultWebInterfaceResolver.Instance;
            }
            else
            {
                _contractResolver = config.ResolverProvider() ?? DefaultWebInterfaceResolver.Instance;
            }
        }