は、ウェブを検索しようとしましたが、ので、ここでこれまでのところ、私の質問は何も見つかりませんでした。私は別のメンバーの属性を経由して、インデックスモデル情報にしたいC#の - 派生文脈で導出基本メソッドを呼び出し
を。 これを行うには、呼び出されたときに必要な情報をすべて集める基本クラスに関数を作成しました。 このメソッドは、すべてのインデックスを作成できるように、異なるモデルに導きます。私は私が私がそこ
using (var indexFacade = IndexFacadeFactory.GetIndexFacade(configuration, this))
{
indexFacade.Execute(this, operation);
}
私は現在抱えている問題を保存したい特定のモデルのためのインデックスサーバーへのアクセスも提供しますジェネリックメソッドを呼んでいる基底クラスで
Base()
{
public virtual void Index() {...}
}
ファクトリを呼び出すときに、ベースクラスの情報を取得するということです。
Derived : Base
{
[IndexingKey]
long Id { get; set; }
[IndexingField]
string SomeValue { get; set; }
}
var derived = new Derived();
derived.Index();
私indexFacadeは、私がここにpolimorphismを知ってる
IndexFacadeBase<Base>
のタイプを保持し、これがなぜ起こるか:私はacomplishたい何
はこのようなものです。
私の質問は:それが呼び出されるコンテキストは、それを上書きせずに基本クラスからのものではないよう にはどうすれば
derived.Index();
呼び出すことができますか?
さらなる情報:
このようになりますと呼ばれる方法
public static IndexFacadeBase<T> GetIndexFacade<T>(IndexInfo.IndexConfiguration config, T model)
{
IndexFacadeBase<T> retVal;
.....
return retVal;
}
Tはベースのタイプを有しています。
のタイプはです。です。
多分、問題のいくつかをクリアします。
私は戻って取得:
IndexFacadeBase<Base>
私は戻っ必要があります:すべての助けを事前に
IndexFacadeBase<Derived>
感謝を。
「派生コンテキスト」とはどういう意味ですか? @マチューワトソン正確に –
。どのような情報を渡したいですか?いつでもthis.GetType()を実行し、実際の派生型を取得できます。 – MistyK
私はderived.Index()を呼び出すときにIndexFacadeBase を持っています 私はIndexFacadeBase が必要です。 タイプはジェネリックから来ており、ベースから呼び出されているので、コンテキストはIndexFacadeBase –