9

Autofac 允许使用 .AsImplementedInterfaces() 或链式 .As<>() 调用与 .SingleInstance() 一起非常轻松地将多个接口解析为同一个实例。这也可以用 TinyIoC 完成吗?我只找到了如何注册同一接口的多个实现,但没有办法链接注册等。

据我了解,这对于 IoC 容器来说是一个非常重要的特性,不是吗?

4

1 回答 1

12

如果我理解正确,你有类似的东西

public class MyThing : IFoo, IBar
{
}

并且您希望以下内容彼此返回相同的实例:

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

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

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

如果您愿意,您可能可以将其包装成更好的语法,但工厂委托实际上就是在幕后发生的事情。

于 2012-06-27T09:39:31.850 回答