实例化结构图中的所有子类

时间:2011-11-13 19:50:13

标签: c# asp.net-mvc dependency-injection structuremap

我正在尝试使用structuremap实例化一个类的所有子类。 我该怎么做,我将如何控制他们的生命?

我有一个其他开发人员继承的基类型来构建他们的类。有一次,我希望实例化所有这些子类并调用它们的方法。

1 个答案:

答案 0 :(得分:2)

您可以像这样进行批量注册:

container.Configure(r =>
{
  foreach (var assembly in
      AppDomain.CurrentDomain.GetAssemblies())
  {
    r.Scan(s =>
    {
      s.Assembly(assembly);
      s.AddAllTypesOf<MyBaseType>();
    });
  }
});

您可以按如下方式解析所有已注册的类型:

IList<MyBaseType> filters = 
    container.GetAllInstances<MyBaseType>();