public EnumProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator) : base(name, staticType, value, parent, evaluator) { this.enumType = value.RuntimeType() as IDebugEnumType; if (this.enumType == null) { this.enumType = staticType as IDebugEnumType; } }
// Override these factory methods to create language specfic IDebugProperty implementations public virtual BaseProperty MakeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent) { IDebugType type = null; if (value == null || value.IsNullReference() || staticType.Kind == TypeKind.Stream || staticType.Kind == TypeKind.FlexArray || staticType.Kind == TypeKind.Enum) { type = staticType; } else { type = value.RuntimeType(); } switch (type.Kind) { case TypeKind.Primitive: return(MakePrimitiveTypeProperty(name, staticType, value, parent)); case TypeKind.InnerClass: case TypeKind.Class: return(MakeClassProperty(name, staticType, value, parent)); case TypeKind.FlexArray: return(MakeFlexArrayProperty(name, staticType, value, parent)); case TypeKind.Tuple: return(MakeStructuralProperty(name, staticType, value, parent)); case TypeKind.Stream: return(MakeStreamProperty(name, staticType, value, parent)); case TypeKind.Array: return(MakeArrayProperty(name, staticType, value, parent)); case TypeKind.Enum: return(MakeEnumProperty(name, staticType, value, parent)); } return(null); }
// Override these factory methods to create language specfic IDebugProperty implementations public virtual BaseProperty MakeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent){ IDebugType type = null; if (value == null || value.IsNullReference() || staticType.Kind == TypeKind.Stream || staticType.Kind == TypeKind.FlexArray || staticType.Kind == TypeKind.Enum) type = staticType; else type = value.RuntimeType(); switch (type.Kind){ case TypeKind.Primitive: return MakePrimitiveTypeProperty(name, staticType, value, parent); case TypeKind.InnerClass: case TypeKind.Class: return MakeClassProperty(name, staticType, value, parent); case TypeKind.FlexArray: return MakeFlexArrayProperty(name, staticType, value, parent); case TypeKind.Tuple: return MakeStructuralProperty(name, staticType, value, parent); case TypeKind.Stream: return MakeStreamProperty(name, staticType, value, parent); case TypeKind.Array: return MakeArrayProperty(name, staticType, value, parent); case TypeKind.Enum: return MakeEnumProperty(name, staticType, value, parent); } return null; }
public EnumProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator) : base(name, staticType, value, parent, evaluator){ this.enumType = value.RuntimeType() as IDebugEnumType; if (this.enumType == null) this.enumType = staticType as IDebugEnumType; }
public CEnumClosureClassSymbols(IDebugValue parent, IDebugContext context){ this.m_Context = context; this.m_Parent = parent; this.m_ClassType = parent.RuntimeType() as IDebugClassType; this.m_Current = null; if (this.m_Parent != null && this.m_ClassType != null){ this.m_FieldEnumerator = this.m_ClassType.GetMembers(null, true, SymbolKind.Field, SymbolModifiers.All); } }