设置类来自 NameValueCollection 的属性
我在一个页面上加密整个查询字符串,然后在另一页面上解密。我使用 HttpUtility.ParseQueryString 获取所有值的 NameValueCollection。
现在,我有一个类,其属性与查询字符串变量名称匹配。我正在努力如何从查询字符串设置属性的值。
这是我正在进行的代码:
NameValueCollection col = HttpUtility.ParseQueryString(decodedString);
ConfirmationPage cp = new ConfirmationPage();
for(int i = 0; i < col.Count; i++)
{
Type type = typeof(ConfirmationPage);
FieldInfo fi = type.GetField(col.GetKey(i));
}
我看到通过反射检索值的示例 - 但我想获取对ConfirmationPage类的属性的引用并在循环中使用它的值设置它 - col.Get(i) 。
I'm encrypting my entire query string on one page, then decrypting it on another. I'm getting a NameValueCollection of all the values using HttpUtility.ParseQueryString.
Now, I have a class whose properties match the query string variable names. I'm struggling how to set the value of the properties from the query string.
Here is my code in progress:
NameValueCollection col = HttpUtility.ParseQueryString(decodedString);
ConfirmationPage cp = new ConfirmationPage();
for(int i = 0; i < col.Count; i++)
{
Type type = typeof(ConfirmationPage);
FieldInfo fi = type.GetField(col.GetKey(i));
}
I'm seeing samples of retrieving values through reflection - but I'd like to get a reference to the property of the ConfirmationPage class and set it with it's value in the loop - col.Get(i).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我可能会采取另一种方式并找到属性(或使用 GetFields() 的字段)
并在查询参数中查找它们,而不是迭代查询参数。然后,您可以使用PropertyInfo 对象上的SetValue 方法来设置ConfirmationPage 上的属性值。
I would probably go the other way and find the properties (or fields using GetFields())
and look them up in the query parameters rather than iterate over the query parameters. You can then use the SetValue method on the PropertyInfo object to set the value of the property on the ConfirmationPage.
尝试:
Try: