【问题标题】:Can I use StructureMap to return all implementations of a generic interface for a specific type parameter我可以使用 StructureMap 为特定类型参数返回通用接口的所有实现吗
【发布时间】:2009-08-19 21:39:23
【问题描述】:

我有一个通用接口,IValidator。我希望能够使用 StructureMap 来检索为给定类型 T 实现 IValidator 的所有类的列表。例如,

var PersonValidators = ObjectFactory.GetAllInstances<IValidator<Person>>();
var AddressValidators = ObjectFactory.GetAllInstances<IValidator<Address>>();

我知道如何检索所有实现 IValidator 的类,但我需要按类型参数的类型对其进行过滤。

谁能给我任何指导或建议?

谢谢。

【问题讨论】:

    标签: c# generics structuremap


    【解决方案1】:

    它将与您的示例完全相同。您只需确保实例已在容器中注册。一种方法是扫描类型:

    ObjectFactory.Initialize(x =>
    {
        x.Scan(scan =>
        {
            scan.TheCallingAssembly();
            scan.WithDefaultConventions();
            scan.AddAllTypesOf<IValidator<Person>>();
            scan.AddAllTypesOf<IValidator<Address>>();
        });
    });
    
    var PersonValidators = ObjectFactory.GetAllInstances<IValidator<Person>>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多