1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
namespace Mono.Debugger.Languages
{
public abstract class TargetClassType : TargetStructType
{
protected TargetClassType (Language language, TargetObjectKind kind)
: base (language, kind)
{ }
public abstract TargetFieldInfo[] Fields {
get;
}
public abstract TargetPropertyInfo[] Properties {
get;
}
public abstract TargetEventInfo[] Events {
get;
}
public abstract TargetMethodInfo[] Methods {
get;
}
public abstract TargetMethodInfo[] Constructors {
get;
}
public virtual TargetMemberInfo FindMember (string name, bool search_static,
bool search_instance)
{
foreach (TargetFieldInfo field in Fields) {
if (field.IsStatic && !search_static)
continue;
if (!field.IsStatic && !search_instance)
continue;
if (field.Name == name)
return field;
}
foreach (TargetPropertyInfo property in Properties) {
if (property.IsStatic && !search_static)
continue;
if (!property.IsStatic && !search_instance)
continue;
if (property.Name == name)
return property;
}
foreach (TargetEventInfo ev in Events) {
if (ev.IsStatic && !search_static)
continue;
if (!ev.IsStatic && !search_instance)
continue;
if (ev.Name == name)
return ev;
}
return null;
}
}
}
|