2012-06-27 45 views
7

Autofac允许使用.AsImplementedInterfaces()或链接方式很容易地将多个接口解析为同一个实例。与(.SingleInstance())一起调用。这也可以用TinyIoC来完成吗?我只找到了如何注册同一接口的多个实现,但没有链接注册或类似的方法。TinyIoC:在单个实例上注册多个接口

从我的理解来看,这是IoC容器的一个非常重要的特性,不是吗?

回答

9

如果我理解正确,您有类似

public class MyThing : IFoo, IBar 
{ 
} 

,你想下面的返回相同的实例作为对方:

Resolve<IFoo>(); 
Resolve<IBar>(); 

如果是这样,这是可能的,但它是有点难看:

container.Register<IFoo, MyThing>(); 
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar); 

如果你想要,你可以把它换成一些更好的语法,但是那个fa ctory委托实际上是在幕后发生的事情。

+0

谢谢!我试图找到这样的事情,但昨晚不能完全决定。 – TeaDrivenDev

相关问题