私は以前インターフェースに関する質問をしていて、すばらしい反応を得ました。私は本当に柔軟なコードを開発することに興奮しています。別のアセンブリでメソッドをオーバーライドする方法は?
ここで、仮想メソッドのオーバーライドに関する質問があります。
私は現在コミュニティサーバーSDKを使用しています。コントロールの1つは「タグ」パン粉です。したがって、関連するオブジェクトに「タグ」が表示されます。
<CSBlog:TagBreadCrumb />
しかし私は、これらのタグは、エンドユーザーには関係ありません、管理者へのレイアウトに表示されるコンテンツの特定のスポットをターゲットにできるように、タグを使用しています。たとえば、Home_Mainタグはホームページのメインパネルをターゲットにするために使用されますが、ユーザーには表示させたくありません。
私はコミュニティサーバー用のSDKを持っているので、私は「タグリスト」をレンダリングし、自分が望むことを行うための変更を加えました。しかし、私の理解は、多くの理由でコアを修正するのは良くない。
私がしたいのは、本質的に基本コントロールとほぼ100%同一ですが、1つの方法をオーバーライドする独自のコントロールを作成することです。ここで
はメソッドです:タグをフォーマットするためのコードがあるの内側public virtual string FormatTags(string[] tagList)
、そして私がチェックし、設定ファイルを除いて、同じもののすべてを行い、自分のコードを記述したいと思います除外する 'タグ'。
私の理解では、ベースコントロールから派生したコントロールを作成し、独自のFormatTags()メソッドを記述できます。
私はそれを変更する必要がありますが、これは基本クラスからそのメソッドの元のコードをコピーしてそこに必要なものを変更する必要があるということですか?それはちょうど1つのスポットからコードをコピーするように感じることはありませんが、ベースクラスのコードを変更することなくメソッドを拡張する別の方法はわかりません。
ありがとうございます。
興味深い! FormatTagsで起こることの1つは、タグがリンクに変わることです。そのため、タグを解析するのではなく、解析するのが難しくなります。私はそれに対処する必要がありますか?その時点で、ベースコードをコピーして変更しますか?ありがとうございました。 – user53885