私のプロジェクトでは、共通ページ機能を保持するためにベースページを使用しています。ベースページが巨大になるまで働いたので、ベースページをいくつかのクラスに分解しようとしました。私はこれを取ることになっています方法ASP.NETベースページの多重継承をシミュレートする方法は?
public class SecurePage : RadAjaxPage
{
// Add session id to ViewStateUserKey
}
public class PageWithGridViewSorting : RadAjaxPage
{
// add sorting to all grids on page
}
public class PageWithSessionWarning : RadAjaxPage
{
// inject javascript to warn user of impending session end
}
:?それから私は私のようなものを与え
public MyPage : SecurePage, PageWithGridViewSorting, PageWithSessionWarning
を書くことができないことに気づきましたかそして、私は、これがASP.NETページであるという事実は、それが私ではなく、フレームワークによって構築されるクラスであるため、関連性があると思います。私の最初の考えは、コンストラクタのオーバーライドを行い、フィーチャを渡すことでしたが、System.Web.UI.Pageを使って作業することはありませんでした。
他のクラスからこの機能を呼び出すことができますか?その場合は、適切なオブジェクトをインスタンス化するか、静的クラスにして、そのようにメソッドを呼び出すだけです。 – Powerlord
@RBembros通常、このコードはPage_Load、OnInitなどにフックするため、イベントやページのライフサイクルを通じてコードを呼び出すASP.NETパイプラインです。静的なメソッドのためによく取られた点、私はそれらが基本クラスにある必要はないことに同意します。 – MatthewMartin