这是一个有点棘手的问题,我不知道这是否可能。
假设我有一个Foo1
在 DLL 中的类,但我无法修改它。该类如下所示:
public class Foo1<T1> : IFoo<T1>
{
public Foo1(Func<IFoo, T1, T1> postRead);
}
我想继承Foo1
并能够T2
在原始对象中注入一个对象postRead
并在 base 中访问它postRead
。
像这样的东西:
public class Foo2<T1, T2> : Foo<T1>
{
public Foo2(Func<IFoo, T1, T2, T1> newPostRead)
:base(Func<IFoo, T1, T1> secondPostRead)
{
}
}
可能吗?
编辑: 我正在使用洞察数据库。这是一个ORM。有做后期处理的功能。代码如下所示:
public class PostProcessRecordReader<T> : RecordReader<T>
{
public PostProcessRecordReader(Func<IDataReader, T, T> postRead);
}
//How to use the processor
public DummyFunction(ObjectIWantToUse objectIwantToUse)
{
PostProcessRecordReader<Foo> _postProcessorForCubeWithAllEntitiesForBuilding = new PostProcessRecordReader<Foo> (reader, obj) =>
{
//Need to have access objectIwantToUse !!!
//maybe I want to modify obj or add some stuff to it
}
);
//Do some stuff by using _postProcessorForCubeWithAllEntitiesForBuilding
}
我们可以通过直接访问读取器来对从数据库返回的对象进行一些处理。