TinyIoC:在单个实例上注册多个接口(TinyIoC: Register multiple in

2019-07-30 03:17发布

Autofac允许与.AsImplementedInterfaces()或链状。如<>()与.SingleInstance()调用一起解决多个接口到同一实例非常容易。 可这也可以用做TinyIoC? 我只找到了如何注册相同接口的多个实现,但没有链接注册或类似的方式。

从我的理解,这是一个IoC容器一个比较重要的功能,是不是?

Answer 1:

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

public class MyThing : IFoo, IBar
{
}

而你要下返回相同的实例作为对方:

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

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

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

你也许可以换行到一些更好的语法,如果你想参加,但该工厂委托是有效会有什么引擎盖下发生。



文章来源: TinyIoC: Register multiple interfaces on a single instance