C#通过反射让Request对象只读属性可写的方法
2016-09-23 14:06
756 查看
C#的 Request对象的QueryString在初始化后就不能被设置因为它是只读的,不过可以用反射的方式将其设置为可写。
前提是类有IsReadOnly属性定义,通过反射设置对象的只读为FALSE,写完之后再设回来。
private void UpdateQueryString(string queryString, string value)
{
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
isreadonly.SetValue(this.Request.QueryString, false, null);
this.Request.QueryString.Set(queryString, value);
isreadonly.SetValue(this.Request.QueryString, true, null);
}
前提是类有IsReadOnly属性定义,通过反射设置对象的只读为FALSE,写完之后再设回来。
private void UpdateQueryString(string queryString, string value)
{
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
isreadonly.SetValue(this.Request.QueryString, false, null);
this.Request.QueryString.Set(queryString, value);
isreadonly.SetValue(this.Request.QueryString, true, null);
}
相关文章推荐
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- C# 通过反射类动态调用DLL方法
- C# 反射通过GetCustomAttributes方法,获得自定义特性
- C#中通过反射方法获取控件类型和名称
- C#通过反射调用泛型方法
- 通过反射的方法,将源对象属性的值赋给目标对象的相同属性
- c# 通过反射属性, 把源对象写入目标对象
- java基础之反射-通过反射调用某个属性的setter和getter方法
- C# 通过反射获取MVC Controller里的类名,方法名,参数列表,返回值类型,Description描述,自定义Attribute
- C#对象通过反射访问类中共有方法
- 通过反射的方法,将源对象属性的值赋给目标对象的相同属性(举例)
- java通过反射机制取类的属性和方法
- C#反射新建类实例和调用类方法及属性帮助类 以及获取或设置对象属性中字段值帮助类
- C#通过属性名称获取(读取)属性值的方法
- 通过反射获取类的所有属性和方法
- C#通过反射调用泛型参数方法介绍
- C#属性与特性,方法,反射
- c# 通过反射回调Ajax请求的方法
- C# 利用反射,遍历获得一个类的所有属性名,方法名,成员名
- C#利用反射来判断对象是否包含某个属性的实现方法