首页 > 解决方案 > 将 System.Net.Configuration.DefaultProxySection 转换为 WebRequest.DefaultWebProxy

问题描述

在我的 Web 和桌面应用程序(共享相同的公共库)中,代理是可配置的。所以当用户禁用代理时,System.Net.WebRequest.DefaultWebProxy = null;设置,有效地禁用代理。但是当用户启用代理时,应用程序需要从 web.config 或 app.config 中重新设置代理配置(根据应用程序类型)。

到目前为止,我可以从配置文件中读取默认代理配置,如下所示,

var defaultProxy = System.Configuration.ConfigurationManager.GetSection("system.net/defaultProxy") as System.Net.Configuration.DefaultProxySection;

有没有一种直接的方法来转换DefaultProxySectionSystem.Net.WebRequest.DefaultWebProxy而无需从变量中选择每个配置defaultProxy并将其分配给新的 DefaultWebProxy 变量并分配它?

标签: c#dynamicproxyconfig

解决方案


此功能DefaultProxySectionInternal在系统程序集内部的类中实现,您的代码不能使用。

我的建议是System.Net.WebRequest.DefaultWebProxy在第一次设置它之前存储一个引用,然后在应该使用配置中的代理设置时重新使用它。


推荐阅读