Autofac允许与.AsImplementedInterfaces()或链状。如<>()与.SingleInstance()调用一起解决多个接口到同一实例非常容易。 可这也可以用做TinyIoC? 我只找到了如何注册相同接口的多个实现,但没有链接注册或类似的方式。
从我的理解,这是一个IoC容器一个比较重要的功能,是不是?
Autofac允许与.AsImplementedInterfaces()或链状。如<>()与.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);
你也许可以换行到一些更好的语法,如果你想参加,但该工厂委托是有效会有什么引擎盖下发生。