TinyIoC:在单个实例上注册多个接口

9
Autofac允许使用.AsImplementedInterfaces()或链接的.As<>()调用以及.SingleInstance()一起轻松地将多个接口解析为同一实例。TinyIoC可以做到这一点吗?我只找到了如何注册相同接口的多个实现,但没有办法链接注册或类似的操作。

据我所知,这对于一个IoC容器来说是非常重要的功能,不是吗?
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);

如果你想的话,可能可以将其包装到一些更好的语法中,但是那个工厂委托是在底层实际发生的。


谢谢!我昨晚一直在试图找到类似的东西,但是一直没有下定决心。 - TeaDrivenDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接