@ -19,16 +19,19 @@ namespace Debugger.AddIn.TreeModel
@@ -19,16 +19,19 @@ namespace Debugger.AddIn.TreeModel
{
public static IEnumerable < AbstractNode > GetChildNodesOfObject ( Expression targetObject , DebugType shownType )
{
BindingFlags Flags = BindingFlags . Public | BindingFlags . Instance | BindingFlags . Field | BindingFlags . GetProperty ;
if ( shownType . BaseType ! = null ) {
yield return new BaseClassNode ( targetObject , shownType . BaseType ) ;
}
if ( shownType . HasMembers ( BindingFlags . NonPublicInstance ) ) {
if ( shownType . HasMembers ( NonPublicInstanceMembersNode . Flags ) ) {
yield return new NonPublicInstanceMembersNode ( targetObject , shownType ) ;
}
if ( shownType . HasMembers ( BindingFlags . Static ) ) {
if ( shownType . HasMembers ( StaticMembersNode . Flags ) | |
shownType . HasMembers ( NonPublicStaticMembersNode . Flags ) )
{
yield return new StaticMembersNode ( targetObject , shownType ) ;
}
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Binding Flags. PublicInstance ) ) {
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Flags ) ) {
yield return Util . CreateNode ( childExpr ) ;
}
}
@ -53,6 +56,8 @@ namespace Debugger.AddIn.TreeModel
@@ -53,6 +56,8 @@ namespace Debugger.AddIn.TreeModel
public class NonPublicInstanceMembersNode : AbstractNode
{
public static BindingFlags Flags = BindingFlags . NonPublic | BindingFlags . Instance | BindingFlags . Field | BindingFlags . GetProperty ;
Expression targetObject ;
DebugType shownType ;
@ -67,7 +72,7 @@ namespace Debugger.AddIn.TreeModel
@@ -67,7 +72,7 @@ namespace Debugger.AddIn.TreeModel
IEnumerable < AbstractNode > GetChildNodes ( )
{
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Binding Flags. NonPublicInstance ) ) {
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Flags ) ) {
yield return Util . CreateNode ( childExpr ) ;
}
}
@ -75,6 +80,8 @@ namespace Debugger.AddIn.TreeModel
@@ -75,6 +80,8 @@ namespace Debugger.AddIn.TreeModel
public class StaticMembersNode : AbstractNode
{
public static BindingFlags Flags = BindingFlags . Public | BindingFlags . Static | BindingFlags . Field | BindingFlags . GetProperty ;
Expression targetObject ;
DebugType shownType ;
@ -89,10 +96,10 @@ namespace Debugger.AddIn.TreeModel
@@ -89,10 +96,10 @@ namespace Debugger.AddIn.TreeModel
IEnumerable < AbstractNode > GetChildNodes ( )
{
if ( shownType . HasMembers ( BindingFlags . NonPublicStatic ) ) {
if ( shownType . HasMembers ( NonPublicStaticMembersNode . Flags ) ) {
yield return new NonPublicStaticMembersNode ( targetObject , shownType ) ;
}
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Binding Flags. PublicStatic ) ) {
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Flags ) ) {
yield return Util . CreateNode ( childExpr ) ;
}
}
@ -100,6 +107,8 @@ namespace Debugger.AddIn.TreeModel
@@ -100,6 +107,8 @@ namespace Debugger.AddIn.TreeModel
public class NonPublicStaticMembersNode : AbstractNode
{
public static BindingFlags Flags = BindingFlags . NonPublic | BindingFlags . Static | BindingFlags . Field | BindingFlags . GetProperty ;
Expression targetObject ;
DebugType shownType ;
@ -114,7 +123,7 @@ namespace Debugger.AddIn.TreeModel
@@ -114,7 +123,7 @@ namespace Debugger.AddIn.TreeModel
IEnumerable < AbstractNode > GetChildNodes ( )
{
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Binding Flags. NonPublicStatic ) ) {
foreach ( Expression childExpr in targetObject . AppendObjectMembers ( shownType , Flags ) ) {
yield return Util . CreateNode ( childExpr ) ;
}
}