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

Tea*_*Dev 9 .net inversion-of-control tinyioc

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

根据我的理解,这是IoC容器的一个非常重要的功能,不是吗?

Ste*_*ins 11

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

public class MyThing : IFoo, IBar
{
}
Run Code Online (Sandbox Code Playgroud)

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

Resolve<IFoo>();
Resolve<IBar>();
Run Code Online (Sandbox Code Playgroud)

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

container.Register<IFoo, MyThing>();
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar);
Run Code Online (Sandbox Code Playgroud)

如果你愿意的话,你可以把它包装成一些更好的语法,但是工厂代表实际上将会发生什么.