モデルのエラーを取得する
モデルのエラーを取得する
モデルに対するエラーはIModelオブジェクトのErrorsプロパティで取得できます。また、エラーがあるかどうかはIModelオブジェクトのHasErrorプロパティ、子要素も含めてエラーがあるかどうかは、IModelオブジェクトのHasErrorWithChildrenプロパティを用います。
public void GetErrors(ICommandContext c, ICommandParams p)
{
IModel model = c.App.Workspace.CurrentModel;
// エラーがある場合
if ( model.HasError )
{
// エラーメッセージを出力します
foreach ( IError error in model.Errors )
{
c.App.Output.WriteLine("sample", $"Error: {error.Message}");
}
}
}
すべてのエラーを取得する
現在のすべてのエラーを取得するには、IApplicationオブジェクトのErrorsプロパティを用います。
public void ListErrors(ICommandContext c, ICommandParams p)
{
IErrors errors = c.App.Errors;
// すべてのエラーにアクセスできます
foreach ( var error in errors.AllErrors)
{
c.App.Output.WriteLine("sample", $"Error: {error.Message}");
}
}
特定の種類のエラーを取得する
特定の種類のエラーを取得するには、IErrorsオブジェクトの各種プロパティを用います。使用できるプロパティは以下です。型はすべてエラーのコレクション(IErrorCollection)です。
AllErrors:すべてのエラー情報を取得します。Errors:エラー種別が"エラー"のエラー情報を取得します。Warnings:エラー種別が"警告"のエラー情報を取得します。Informations:エラー種別が"情報"のエラー情報を取得します。Summaries:エラー種別が"サマリ"のエラー情報を取得します。
public void ListErrors(ICommandContext c, ICommandParams p)
{
IErrors errors = c.App.Errors;
// 警告なども含むすべての情報を取得します
var allErrors = errors.AllErrors;
// typeがエラーの情報のみを取得します
var onlyErrors = errors.Errors;
// typeが警告の情報のみを取得します
var onlyWarnings = errors.Warnings;
}