72 lines
1.8 KiB
C#
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;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|