繁体   English   中英

我是否可以使用StructureMap返回特定类型参数的通用接口的所有实现

[英]Can I use StructureMap to return all implementations of a generic interface for a specific type parameter

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

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

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

任何人都可以给我任何指导或建议吗?

谢谢。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM