//
//
//
//
// $Revision$
//
using System;
using System.Collections.Generic;
using Debugger.Wrappers.CorDebug;
using Debugger.Wrappers.MetaData;
namespace Debugger.MetaData
{
///
/// Provides information about a member of some class
/// (eg. a field or a method).
///
public abstract class MemberInfo: DebuggerObject
{
DebugType declaringType;
/// Gets the process in which the type was loaded
[Debugger.Tests.Ignore]
public Process Process {
get {
return declaringType.Process;
}
}
/// Gets the name of this member
public abstract string Name { get; }
/// Gets name of the method including the full name of the declaring type
public string FullName {
get {
return this.DeclaringType.FullName + "." + this.Name;
}
}
/// Gets the module in which this member is defined
public Module Module {
get {
return declaringType.Module;
}
}
/// Gets the type that declares this member element
public DebugType DeclaringType {
get {
return declaringType;
}
}
/// Gets a value indicating whether this member has the private access modifier
public abstract bool IsPrivate { get; }
/// Gets a value indicating whether this member has the internal access modifier
public abstract bool IsInternal { get; }
/// Gets a value indicating whether this member has the protected access modifier
public abstract bool IsProtected { get; }
/// Gets a value indicating whether this member has the public access modifier
public abstract bool IsPublic { get; }
/// Gets a value indicating whether this member is static
public abstract bool IsStatic { get; }
/// Gets the metadata token associated with this member
[Debugger.Tests.Ignore]
public abstract uint MetadataToken { get; }
internal MemberInfo(DebugType declaringType)
{
this.declaringType = declaringType;
}
public override string ToString()
{
return this.Name;
}
}
}