web-dev-qa-db-ja.com

カスタムアクションフィルターがActionFilterAttributeとIActionFilterの両方から継承する必要があるのはなぜですか?

私は初めてカスタムアクションフィルターを作成し、このリンクをたどります http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-custom-action -filters

彼らは、ActionFilterAttributeクラスを拡張し、IActionFilterインターフェースも実装するように言っています。 ActionFilterAttributeはすでにIActionFilterを実装しています。なぜ属性クラスにInterfaceを再度実装する必要があるのか​​と思います。何かしなければならないことはありますか?このあいまいさを解消していただければ幸いです。

3
user576510

基本クラスが既に実装しているため、インターフェイスを再度指定する必要はありません。インターフェイスを再度追加することは冗長ですが、何も害を及ぼすことはありません。

また、すでにインターフェイスを実装している既存の仮想メソッドをオーバーライドするのではなく、なぜ明示的にインターフェイスを実装しているのかもわかりません。

2
Andy

あるいは多分それは単に間違いです。たとえば、継承から継承することができます

1)FilterAttribute、IActionFilter

または

2)ActionFilterAttribute

1つ目は、MVC属性の低レベルの動作に加えて、OrderおよびAllowMultipleプロパティを提供します。
2つ目は、詳細情報が少なく、OnResultExecutingおよびOnResultExecuted機能が提供されます。

1
Rzassar