[英]How do I Copy Properties From one HttpWebRequest to Another?
我目前正在编写一个Lib来使用HttpWebRequest类和属性。 在调用某些方法之后,我将需要重构类的HttpWebRequest属性,但不是从头开始。
这就是我想要完成的事情:
从现有的HttpWebRequest备份属性
System.Reflection.PropertyInfo [] properties = m_HttpWebRequest.GetType()。GetProperties();
重新实例化该属性,创建一个新的WebRequest
m_HttpWebRequest =(HttpWebRequest)WebRequest.Create(requestUrl);
将复制的属性添加到新实例。 这是我无法做到的。
有关如何实施第三步的任何想法? 目前我可以使用以下方式获取每个Property的名称:
properties[index].Name
但我不能参考这个价值。
你有没有尝试过:
var value = propertyInfo.GetValue(m_HttpWebRequest, null);
你的情况:
foreach (PropertyInfo propertyInfo in m_HttpWebRequest.GetType().GetProperties())
{
if (propertyInfo.GetValue(m_HttpWebRequest, null) != null) propertyInfo.SetValue(m_HttpWebRequest2,propertyInfo.GetValue(m_HttpWebRequest, null), null);
}
阅读更多相关信息:
这大致应该让你到达那里:
foreach(var prop in m_HttpWebRequest.GetType().GetProperties())
{
if(!(prop.CanWrite && prop.CanRead))
continue;
var val = prop.GetValue(m_HttpWebRequest, BindingFlags.GetProperty, null, null, null);
if (val == null)
continue;
prop.SetValue(m_HttpWebRequest2, val, BindingFlags.SetProperty, null, null, null);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.