That some important collection are readonly may be a real issue on some cases.
This morning I found a way to preserver Request.QueryString from one Page transfered to another and the last thing that was bothering me is I couldn't alter the target page's QueryString.
In the end, I found a helpful blog page that tells you how to override that using reflection.
var QS = x.Request.QueryString;
// QueryString is readonly?! Well, screw that!
QS.GetType().GetProperty("IsReadOnly", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(QS, false, null);
Microsoft .NET Tips · · · ·