试图搜索网络,但到目前为止什么也没找到,所以我的问题是:
我想通过不同成员的属性来索引模型信息。为此,我在基类中创建了一个函数,该函数在调用时收集所有需要的信息。这种方法被派生到不同的模型中,以便它们都可以被索引。
Base()
{
public virtual void Index() {...}
}
在基类中,我调用了一个通用方法,该方法使我可以访问要保存在那里的特定模型的索引服务器
using (var indexFacade = IndexFacadeFactory.GetIndexFacade(configuration, this))
{
indexFacade.Execute(this, operation);
}
我目前遇到的问题是,在调用工厂时,它会检索基类的信息。
我想要完成的是这样的:
Derived : Base
{
[IndexingKey]
long Id { get; set; }
[IndexingField]
string SomeValue { get; set; }
}
var derived = new Derived();
derived.Index();
我的 indexFacade 持有的类型
IndexFacadeBase<Base>
我知道这里的多态性以及为什么会发生这种情况。
我的问题是:我怎么打电话
derived.Index();
以便调用它的上下文不是来自基类而不覆盖它?
更多信息:
调用的方法如下所示:
public static IndexFacadeBase<T> GetIndexFacade<T>(IndexInfo.IndexConfiguration config, T model)
{
IndexFacadeBase<T> retVal;
.....
return retVal;
}
T的类型为Base。
该模型的类型为Derived。
也许这可以解决一些问题。
我回来了:
IndexFacadeBase<Base>
我需要回来:
IndexFacadeBase<Derived>
提前感谢所有帮助。