Unity ResolveAll后代

时间:2012-08-03 08:31:25

标签: c# .net dependency-injection unity-container

我的基本接口IBaseModel包含许多后代(例如IContactModel : IBaseModel;IRelationModel : IBaseModel;等)和实现此接口的对象。

所有这些后代接口都在Unity容器中注册。

如何解决IBaseModel后代的所有对象?

1 个答案:

答案 0 :(得分:0)

var types = Container
  .Registrations
  .Where(x => typeof (IBaseModel).IsAssignableFrom(x.RegisteredType))
  .Select(x => x.RegisteredType)
  .ToList();

var result = types
  .Select(x => (IBaseModel) Container.Resolve(x.UnderlyingSystemType))
  .ToList();