我使用autofac进行泛型类型注入,我想用另一个泛型类型注入调用基本DI中的函数。我是怎么做到的它有可能吗?
例如:
public class FooRepository : BaseRepository<Foo>
{
public FooRepository(IUser user) : base(user)
{
}
public override int Add(Foo entity)
{
var d =base.Add(entity)
//how declare BaseRepository<Bar>
var c = ?????.Add(entity.Bar);
return d;
}
}
答案 0 :(得分:0)
有些相似typeof(BaseRepository<>).MakeGenericType(typeof(Bar))
可能会或可能不会起作用,具体取决于您实际未指定的上下文。请注意,我提供了一个反射驱动的解决方案,肯定比正常的子类化慢。
答案 1 :(得分:0)
我找到了简单的解决方案
public class FooRepository : BaseRepository<Foo>
{
IBaseRepository<Bar> _barep;
public FooRepository(IUser user, IBaseRepository<Bar> barep) : base(user)
{
_barep=barep;
}
public override int Add(Foo entity)
{
var d =base.Add(entity)
//how declare BaseRepository<Bar>
var c = barep.Add(entity.Bar);
return d;
}
}
感谢