gpt4 book ai didi

c# - 我可以使用 StructureMap 返回特定类型参数的通用接口(interface)的所有实现吗

转载 作者:太空狗 更新时间:2023-10-29 18:26:11 26 4
gpt4 key购买 nike

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

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

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

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

谢谢。

最佳答案

它会像您的示例一样工作。您只需确保实例已在容器中注册。一种方法是扫描类型:

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

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

关于c# - 我可以使用 StructureMap 返回特定类型参数的通用接口(interface)的所有实现吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com