Language

IValidationAttributeFormatter インターフェイス

定義

属性固有の引数を使用して検証エラー メッセージ テンプレートを書式設定します。 {0} (表示名) を超える位置プレースホルダーを含むローカライズされたテンプレートから、完全に書式設定されたエラー メッセージを生成するために、検証ローカライズ パイプラインによって使用されます。

public interface class IValidationAttributeFormatter
public interface IValidationAttributeFormatter
type IValidationAttributeFormatter = interface
Public Interface IValidationAttributeFormatter

注釈

カスタム検証属性の書式設定のサポートを追加するには、次の 2 つのオプションがあります。

  1. 属性自体に直接 IValidationAttributeFormatter を実装します。 ValidationAttributeFormatterRegistry は、この属性を最初にチェックし、属性を独自のフォーマッタとして自動的に使用します。
  2. 別のIValidationAttributeFormatter実装を作成し、AttributeFormattersを呼び出してAddFormatter<TAttribute>(Func<TAttribute,IValidationAttributeFormatter>)経由で登録します。
次の例は、カスタム属性のフォーマッタを登録する方法を示しています。
public class MyAttributeFormatter(MyAttribute attribute) : IValidationAttributeFormatter
{
    public string FormatErrorMessage(CultureInfo culture, string messageTemplate, string displayName)
        => string.Format(culture, messageTemplate, displayName, attribute.CustomProperty);
}

// Register it in Program.cs:
builder.Services.AddValidationLocalization(options =>
    options.AttributeFormatters.AddFormatter<MyAttribute>(
        attribute => new MyAttributeFormatter(attribute)));

メソッド

Name 説明
FormatErrorMessage(CultureInfo, String, String)

属性固有の引数をmessageTemplateと共に置き換えて、指定したdisplayNameを書式設定します。

適用対象