列出所有会话变量,包括嵌套节点

本文关键字:包括 嵌套 节点 变量 会话 | 更新日期: 2023-09-27 18:12:42

我有一个可怕的时间,我知道如何在其他6种语言中做到这一点,但不能让这个工作

我想看到。net应用程序中的所有会话变量,包括嵌套节点

我使用的代码从这里列出所有会话信息

,我可以使用

获得所有会话变量的第一层
<% 
for (int i = 0; i < Session.Count; i++)
{
    var crntSession = Session.Keys[i];
    Response.Write(string.Concat(crntSession, "=", Session[crntSession]) + "<br />");
}
%>

这是我输出的一部分

Mode=M
TreeRefresh=
AdvUser=TheName.WebFramework.Security.AdvanceUser

我如何通过AdvUser迭代并获得它的值?

我已经尝试过了,但它返回了一个错误CS1061: '对象'不包含'计数'的定义

for (int i = 0; i < Session["AdvUser"].Count; i++)

我也试过这个,得到错误

CS1579: foreach语句不能操作类型为的系统。输入"because"系统。类型'不包含公共定义'GetEnumerator'

foreach (var crntSession in Session["AdvUser"].GetType())

我只是不知道如何得到嵌套节点的值,它不一定是在c#可以在VB

列出所有会话变量,包括嵌套节点

你想做的事情并不真正有意义,因为AdvUser似乎是name . webframework . security . advanceuser类的一个实例。这个类有属性,但是你不能像数组一样循环它们,除非你使用反射。

像这样:http://msdn.microsoft.com/en-us/library/k2w5ey1e.aspx

MyClass MyObject = new MyClass();
     MemberInfo [] myMemberInfo; 
     // Get the type of the class 'MyClass'.
     Type myType = MyObject.GetType(); 
     // Get the public instance members of the class 'MyClass'. 
     myMemberInfo = myType.GetMembers(BindingFlags.Public|BindingFlags.Instance);
     Console.WriteLine( "'nThe public instance members of class '{0}' are : 'n", myType); 
     for (int i =0 ; i < myMemberInfo.Length ; i++)
     {
        // Display name and type of the member of 'MyClass'.
        Console.WriteLine( "'{0}' is a {1}", myMemberInfo[i].Name, myMemberInfo[i].MemberType);
     }