私は初めてカスタムアクションフィルターを作成し、このリンクをたどります http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-custom-action -filters
彼らは、ActionFilterAttribute
クラスを拡張し、IActionFilter
インターフェースも実装するように言っています。 ActionFilterAttribute
はすでにIActionFilter
を実装しています。なぜ属性クラスにInterfaceを再度実装する必要があるのかと思います。何かしなければならないことはありますか?このあいまいさを解消していただければ幸いです。
基本クラスが既に実装しているため、インターフェイスを再度指定する必要はありません。インターフェイスを再度追加することは冗長ですが、何も害を及ぼすことはありません。
また、すでにインターフェイスを実装している既存の仮想メソッドをオーバーライドするのではなく、なぜ明示的にインターフェイスを実装しているのかもわかりません。
あるいは多分それは単に間違いです。たとえば、継承から継承することができます
1)FilterAttribute、IActionFilter
または
2)ActionFilterAttribute
1つ目は、MVC属性の低レベルの動作に加えて、Order
およびAllowMultiple
プロパティを提供します。
2つ目は、詳細情報が少なく、OnResultExecuting
およびOnResultExecuted
機能が提供されます。