ASP.netコア1.0では、IValidationAttributeAdapterProviderサービスを置き換えることでこれを実行できました。
public class CustomValidationAttributeAdapterProvider : IValidationAttributeAdapterProvider
{
public IValidationAttributeAdapterProvider internalImpl;
public CustomValidationAttributeAdapterProvider()
{
internalImpl = new ValidationAttributeAdapterProvider();
}
public IAttributeAdapter GetAttributeAdapter(ValidationAttribute attribute, IStringLocalizer stringLocalizer)
{
IAttributeAdapter adapter = internalImpl.GetAttributeAdapter(attribute, stringLocalizer);
if (adapter == null)
{
var type = attribute.GetType();
if (type == typeof(CustomValidatorAttribute))
{
adapter = new CustomNumberValidatorAdapter((CustomValidatorAttribute)attribute, stringLocalizer);
}
}
return adapter;
}
}
スタートアップConfigureServicesで
if (services.Any(f => f.ServiceType == typeof(IValidationAttributeAdapterProvider)))
{
services.Remove(services.Single(f => f.ServiceType == typeof(IValidationAttributeAdapterProvider)));
}
services.AddScoped<IValidationAttributeAdapterProvider, CustomValidationAttributeAdapterProvider>();
お返事ありがとうございました。 あなたの例では、あなたは 'IModelValidatorProvider'を使います。しかし、私はここのようにレジスト 'IValidationAttributeAdapterProvider'をしたい: [ValidationAttributeAdapterProvider.cs](https://github.com/aspnet/Mvc/blob/144766f2e3ee802f50e143ee29d5ad654333a171/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/ValidationAttributeAdapterProvider.cs) 。 –
これ以上のアイデアはありますか? –
ASP.netコアRC2のアイデアはどこにありますか? –