クラスのフィールドを取得する
フィールド名を指定して取得する
フィールド名を指定してクラスからフィールドを取得するには、IClass
オブジェクト のGetField
メソッドを用います。
public void GetField(ICommandContext c, ICommandParams p)
{
// メタモデルを取得します
IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;
// "Actor"のクラスを取得します
IClass cls = metamodels.GetClass("Actor");
// "ユースケース"のフィールドを取得します
var field = cls.GetField("MainUseCases");
// フィールドの型名を出力します
c.App.Output.WriteLine("sample", $"Field: {field.Type}");
}
フィールドの一覧を取得する
クラスからフィールドの一覧を取得するには、IClass
オブジェクトのGetFields
メソッドを用います。
public void GetFields(ICommandContext c, ICommandParams p)
{
// メタモデルを取得します
IMetamodels metamodels = c.App.Workspace.CurrentProject.Profile.Metamodels;
// "Actor"のクラスを取得します
IClass cls = metamodels.GetClass("Actor");
// "Actor"のクラスのフィールドを取得します
IFieldCollection fields = cls.GetFields();
foreach (var field in fields)
{
// システムフィールドは除外します
if (field.Name.StartsWith("___") || field.Name.StartsWith("$") || field.HasTags("System,System.Core")) continue;
c.App.Output.WriteLine("sample", $"Field: {field.DisplayName}");
}
}