c# - 将 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;
有没有一种直接的方法来转换DefaultProxySection
,System.Net.WebRequest.DefaultWebProxy
而无需从变量中选择每个配置defaultProxy
并将其分配给新的 DefaultWebProxy 变量并分配它?
解决方案
此功能DefaultProxySectionInternal
在系统程序集内部的类中实现,您的代码不能使用。
我的建议是System.Net.WebRequest.DefaultWebProxy
在第一次设置它之前存储一个引用,然后在应该使用配置中的代理设置时重新使用它。
推荐阅读
- flutter - Flutter 无法使用调试器调试 macOS 应用程序(Flutter Attach)
- amazon-s3 - 将 {client-hostname} 重定向到 S3 存储桶文件夹的 API 网关(路径覆盖)
- php - Laravel + Docker 问题(更改不适用)
- c - 如果有的话,什么是技术上的理由来引导一个函数指针参数,然后是那个函数的参数,或者相反?
- python - 如何使用分治法解决 FindMaximumSubarray 的复发错误?
- javascript - 无法识别 instanceof 功能
- rtf - BI Publisher - 水平显示数据 MONTH
- vue.js - 在 vue 中推送组件
- python - TypeError:类似字节的对象,而不是字符串
- python - 如何使用方法补丁创建函数