出于测试目的,我想查看HttpApplication
对象的所有属性及其对应的值(我正在测试 HTTPModule 的某些功能)。我的第一个想法是将其序列化为 XML,然后查看或将其写入文件。
问题是,HttpApplication
不是可序列化的类,所以当我尝试序列化时会抛出异常。是否有任何其他技术,或者甚至有可能获得不可序列化对象的字符串表示形式?我只是想看看我使用 Intellisense 获得的所有相同属性及其值。
我看过一些提到反射的文章,但我没有发现任何表明它适用于我的场景的东西。
更新:
在收到几个回复后,看来我需要使用反射。这是我正在使用的代码:
Dim sProps As New StringBuilder
For Each p As System.Reflection.PropertyInfo In oHttpApp.GetType().GetProperties()
If p.CanRead Then
sProps.AppendLine(p.Name & ": " & p.GetValue(oHttpApp, Nothing))
End If
Next
在我的 AppendLine 语句中,立即抛出异常:
System.InvalidCastException:未为字符串“上下文:”和类型“HttpContext”定义运算符“&”。在 Microsoft.VisualBasic.CompilerServices.Operators.InvokeObjectUserDefinedOperator(UserDefinedOperator Op, Object[] Arguments) 在 Microsoft.VisualBasic.CompilerServices.Operators.InvokeUserDefinedOperator(UserDefinedOperator Op, Object[] Arguments) 在 Microsoft.VisualBasic.CompilerServices.Operators.ConcatenateObject(Object左,对象右)
@granadaCoder,您提到我需要知道要“深入”到什么程度,我想知道这是否是问题所在。在上面的错误中,Context
是一个复杂的对象,所以我需要深入研究它并获取它的各个属性,对吗?你知道我怎么能做到这一点 - 还是就像在我的循环中GetProperties
再次调用一样简单?p