1
こんにちは私はasp.netコアでカスタムDataAnnotation属性を作成しようとしています。ここで私はこれまで持っているものである:私は私のコードでIStoreManager.The問題のインスタンスが必要になりますValidationAttributeでIServiceProviderのインスタンスにアクセスする
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class StoreDupplicateAttribute : ValidationAttribute
{
public StoreDupplicateAttribute(IStoreManager storeManager)
{
}
public override bool IsValid(object value) {
}
}
は、私は属性を使用する場合、私はそれを行う場合は、この方法では、私は、パラメータとしてIStoreManagerを渡す必要があるだろうということです。
コンストラクタインジェクションを使用せずにIServiceProviderのインスタンスにアクセスしてIStoreManagerの依存関係を取得する方法はありますか?
私は確かではないが、私はあなたが '[FromServices]'それが直接注入ではなく、コンストラクタを介して持つようにしてプロパティに注釈をつけることができると思う:あなたは他の仮想isValidメソッド、このような何かをオーバーライドする必要があります。しかし、これはコントローラーでしか動作しないのではないかと疑います(なぜ私は答えとして投稿していないのですか?自分でテストする時間はありません)。それを試す価値がある... –