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

列挙型のすべてのフィールドを取得する

フィールドの一覧から、特定の型のフィールドを取得することができます。 以下は、モデルのフィールドのうち列挙型のフィールドの型情報を取得する例です。

public void OutputEnumFields(ICommandContext c, ICommandParams p)
{
// 現在表示しているモデルのメタクラスの全フィールドを取得します
var fields = c.App.Workspace.CurrentModel.Metaclass.Fields.Values;

foreach ( var field in fields )
{
// $から始まるのはシステムのフィールドなので除外して下さい
if (field.Name.StartsWith("$")) continue;

// 列挙型ではないフィールドを除外します
var enumType = field.TypeEnum;
if (enumType == null) continue;

// 列挙の表示名を出力します
c.App.Output.WriteLine("sample", $"列挙型名: {enumType.DisplayName}");
}
}
注意

APIを利用してフィールドを取得した場合、システムで定義されたフィールドも同時に取得できます。 システムで定義されたフィールドは次のルールに従うため、不要ならば除外してください。

  • 名前(IField.Name)の接頭辞が「$」
  • 名前(IField.Name)の接頭辞が「___」