次のシナリオを実行します。私は複数のASPXページを持っています。ログイン、ログアウト、メイン、メッセージなど...これらはすべてもちろんSystem.Web.UI.Pageから継承しています。すべてのページについて、PageクラスからRenderメソッドをオーバーライドする必要があります。私は簡単にコピー&ペースト同じコードを各ページにそのようにできます。複数のASP.NETページで同じ機能をオーバーライドする方法(レンダリング機能)
protected override void Render(HtmlTextWriter writer)
{
//Code Logic Here
}
をしかし、私は多くのページを持っていた場合、非常に時間がかかり、エラーが発生しやすいを得ることができ、各ページ内のコードを維持し、20を言うことができます。
これは私が少し考えて、私は大丈夫だと思ったと思った...各ページの関数をオーバーライドするが、静的関数を呼び出す。静的関数を変更すると、すべてのページが変更されます。これはうまくいきます...しかし、それは本当に素晴らしく清潔ではなく、すべての単一ページでそのようにオーバーライドする必要があります。誰にもこのアイデアやアイデアはありますか?多分私は見落としているシンプルな何か?ありがとう
EDIT:一部のページはSystem.Web.UI.Pageクラスを使用し、一部のページはSystem.Web.UI.Pageクラスの他の機能を継承して上書きするModifiedPageという別のクラスを継承します。したがって、1つのクラスからすべてのページを継承するほど単純ではありません。
EDIT2:すべてのページがこの動作を必要とします。一部のクラスはすでに別のクラスから派生していますが、他のクラスの実装や継承階層を変更できません。
使用基本クラスから他のすべてのページを継承します。ページを使用してすべてのページに使用します –
編集:一部のページではSystem.Web.UI.Pageクラスを使用し、一部のページではModifiedPageという別のクラスを継承し、System.Web.UI.Pageクラスの他の機能を継承してオーバーライドします。したがって、1つのクラスからすべてのページを継承するほど単純ではありません。 –
改訂版の回答を参照してください。 –