Autofac 允许使用 .AsImplementedInterfaces() 或链式 .As<>() 调用与 .SingleInstance() 一起非常轻松地将多个接口解析为同一个实例。这也可以用 TinyIoC 完成吗?我只找到了如何注册同一接口的多个实现,但没有办法链接注册等。
据我了解,这对于 IoC 容器来说是一个非常重要的特性,不是吗?
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);
如果您愿意,您可能可以将其包装成更好的语法,但工厂委托实际上就是在幕后发生的事情。