English 中文(简体)
ResolveAll是什么意思?
原标题:
  • 时间:2008-12-05 07:02:07
  •  标签:

在IOC中,ResolveAll是什么意思?我知道官方答案是“解析与该类型匹配的所有有效组件。”这是否意味着它会返回实现了特定接口的任何类? 在IOC中,ResolveAll是什麼意思?我知道官方答案是“解析與該類型匹配的所有有效元件。”這是否意味著它會返回實現了特定介面的任何類?

问题回答

它将返回为给定接口注册的所有类。

...而且不等待任何参考解决。今天这让我受了点苦!

使用Unity,ResolveAll将为接口注册的每个映射解析,除了默认映射。

那么,如果您已注册:

container.RegisterType<IInterface, ActualClassOne>(new ContainerControlledLifetimeManager());
container.RegisterType<IInterface, ActualClassOne>("Singleton", new ContainerControlledLifetimeManager());
container.RegisterType<IInterface, ActualClassOne>("Trans", new TransientLifetimeManager());

ResolveAll()仅会提供一个包含已解决的“Singleton”和“Trans”映射的IEnumerable

它将返回为特定接口注册的所有类。

如果我有:

容器.ResolveAll(new { argument = something })。Where(...)

尽管并非所有组件都能满足where子句,但T的所有组件似乎都会被实例化为某个元素。谁来负责释放这些额外的组件?





相关问题
热门标签