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

78 lines
2.1 KiB
C#

//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
using System;
namespace Bartok.MSIL
{
public class MetaDataMethodImpl: MetaDataObject {
// Constructor Methods
internal MetaDataMethodImpl(int classIndex, int bodyIndex,
int declarationIndex) {
this.classIndex = classIndex;
this.bodyIndex = bodyIndex;
this.declarationIndex = declarationIndex;
}
// 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.getTypeDef(this.classIndex);
this.body = loader.getMethodDefOrRef(this.bodyIndex);
this.declaration = loader.getMethodDefOrRef(this.declarationIndex);
}
// Access Methods
public MetaDataTypeDefinition Class {
get {
return this.classObject;
}
}
public MetaDataObject Body {
get {
return this.body;
}
}
public MetaDataObject Declaration {
get {
return this.declaration;
}
}
// Debug Methods
public override String ToString() {
if (this.classObject == null ||
this.body == null ||
this.declaration == null) {
return ("MetaDataMethodImpl("+this.classIndex+","+
this.bodyIndex+","+this.declarationIndex+")");
}
else {
return ("MetaDataMethodImpl("+this.classObject+","+this.body+","+
this.declaration+")");
}
}
// State
private readonly int classIndex;
private MetaDataTypeDefinition classObject;
private readonly int bodyIndex;
private MetaDataObject body;
private readonly int declarationIndex;
private MetaDataObject declaration;
// Internal Classes
}
}