.Net でのシェル拡張機能の記述に関するこの記事によると、コードを記述するときに自然に行うようにシェル インターフェイスを継承することは機能しません。私は自分のコードでもこれを観察しました。
動作しません:
public interface IPersist {
// stuff specific only to IPersist
}
public interface IPersistFolder : IPersist {
// stuff specific only to IPersistFolder
}
動作します:
public interface IPersistFolder {
// stuff specific to IPersist only
// stuff specific to IPersistFolder only
}
この記事では、次の事実に注意しています。
見よ、それはうまくいった!IPersistFolder が何からも継承されるという考えを放棄し、IPersist のスタブをその定義に正しく含めただけであることに注意してください。率直に言って、これがなぜなのかはわかりませんが、問題なく動作することは間違いありません。
では、この男が知らなかった質問をします。元のコードが機能しなかったのはなぜですか?