メインコンテンツまでスキップ

継承元のクラスを取得する

直接継承するクラスを取得する

IClassオブジェクトのSuperClassesプロパティを用いることで直接継承するクラスを取得できます。

public void GetSuperClasses(ICommandContext c, ICommandParams p)
{
// メタモデルを取得します
IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;

// "Actor"のクラスを取得します
IClass cls = metamodels.GetClass("Actor");

// クラス名を出力します
c.App.Output.WriteLine("sample", $"Class: {cls.DisplayName}");

// 継承元クラスを取得します
IClassCollection superClasses = cls.SuperClasses;
foreach (var superClass in superClasses)
{
// クラス名を出力します
c.App.Output.WriteLine("sample", $"SuperClass: {superClass.DisplayName}");
}
}

すべての継承元のクラスを取得する

IClassオブジェクトのGetAllSuperClassesメソッドを用いることで継承元のクラスの継承元を含むすべての継承元のクラスを取得できます。

public void GetAllSuperClasses(ICommandContext c, ICommandParams p)
{
// メタモデルを取得します
IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;

// "Actor"のクラスを取得します
IClass cls = metamodels.GetClass("Actor");

// クラス名を出力します
c.App.Output.WriteLine("sample", $"Class: {cls.DisplayName}");

// すべての継承元クラスを取得します
IClassCollection superClasses = cls.GetAllSuperClasses();
foreach (var superClass in superClasses)
{
// クラス名を出力します
c.App.Output.WriteLine("sample", $"SuperClass: {superClass.DisplayName}");
}
}