You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RestSharp v110迁移:初始化后如何更新RestClient配置?

RestSharp v106迁移至v110:现有RestClient配置更新方案

RestSharp v110对客户端配置做了核心改动——RestClientOptions变为不可变对象,所以你没法直接修改restClient.Options下的属性,也不能直接替换整个Options对象(因为RestClient.Options是只读属性)。

针对你的场景,最优方案是基于现有客户端的配置生成新的配置实例,再创建新的RestClient(放心,RestClient实例本身轻量,创建开销极低),具体操作分两种方式:

方式1:使用C# 9+的with表达式(推荐)

这种方式最简洁,直接基于原有配置修改需要的属性:

// 初始化客户端
var initialOptions = new RestClientOptions(baseUrl);
var restClient = new RestClient(initialOptions);

// 后续更新配置:开启重定向+添加Cookie容器
var updatedOptions = restClient.Options with {
    FollowRedirects = true,
    CookieContainer = new CookieContainer()
};
// 替换为新的客户端实例
restClient = restClient.WithOptions(updatedOptions);

方式2:使用Clone方法

如果你的项目还没升级到C# 9,用Clone方法复制原有配置后修改:

// 初始化客户端
var restClient = new RestClient(baseUrl);

// 后续更新配置
var updatedOptions = restClient.Options.Clone();
updatedOptions.FollowRedirects = true;
updatedOptions.CookieContainer = new CookieContainer();
// 替换为新的客户端实例
restClient = restClient.WithOptions(updatedOptions);

注意点

  • 不要试图直接修改restClient.Options的属性,这在v110里是不允许的(编译报错)。
  • RestClient是无状态的,创建新实例不会有性能问题,这是官方推荐的配置更新方式。

内容的提问来源于stack exchange,提问作者user17218342

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:15:06