singrdk/base/Windows/mkmsil/msil/MetaDataMemberRef.cs

72 lines
1.8 KiB
C#

//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
using System;
namespace Bartok.MSIL
{
public class MetaDataMemberRef: MetaDataObject {
// Constructor Methods
internal MetaDataMemberRef(int classIndex, String name,
Signature signature) {
this.classIndex = classIndex;
this.name = name;
this.signature = signature;
}
// This is technically not a constructor method, but it is meant to
// be used to set up the object
internal void resolveReferences(MetaDataLoader loader) {
this.classObject = loader.getMemberRefParent(this.classIndex);
this.signature = signature.resolve(loader);
}
// Access Methods
// Returns one of MetaData{TypeDef,TypeRef,ModuleRef,MethodDef,TypeSpec}
public MetaDataObject Class {
get {
return this.classObject;
}
}
public String Name {
get {
return this.name;
}
}
public Signature Signature {
get {
return this.signature;
}
}
// Debug Methods
public override String ToString() {
if (this.classObject == null) {
return ("MetaDataMemberRef("+this.classIndex+","+this.name+","+
this.signature+")");
}
else {
return ("MetaDataMemberRef("+this.classObject+","+this.name+","+
this.signature+")");
}
}
// State
private readonly int classIndex;
private MetaDataObject classObject;
private readonly String name;
private Signature signature;
}
}