Autofac允许使用.AsImplementedInterfaces()或链接来解析同一实例的多个接口。与<>()一起调用.SingleInstance()。这也可以用TinyIoC完成吗?我只发现了如何注册同一个接口的多个实现,但没有办法链接注册等。
根据我的理解,这是IoC容器的一个非常重要的功能,不是吗?
答案 0 :(得分:10)
如果我正确理解你有类似
的东西public class MyThing : IFoo, IBar
{
}
并且您希望以下内容相互返回相同的实例:
Resolve<IFoo>();
Resolve<IBar>();
如果是这样,那是可能的,但它有点难看:
container.Register<IFoo, MyThing>();
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar);
如果你愿意的话,你可以把它包装成一些更好的语法,但是工厂代表实际上将会发生什么。