Autofac允许使用.AsImplementedInterfaces()或链接的.As<>()调用以及.SingleInstance()一起轻松地将多个接口解析为同一实例。TinyIoC可以做到这一点吗?我只找到了如何注册相同接口的多个实现,但没有办法链接注册或类似的操作。
据我所知,这对于一个IoC容器来说是非常重要的功能,不是吗?
如果我理解正确,您有类似以下的东西:
public class MyThing : IFoo, IBar
{
}
你希望以下代码返回相同的实例:
Resolve<IFoo>();
Resolve<IBar>();
如果是这样的话,可能是可行的,但有点丑陋:
container.Register<IFoo, MyThing>();
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar);
如果你想的话,可能可以将其包装到一些更好的语法中,但是那个工厂委托是在底层实际发生的。