C# 我可以使用StructureMap返回特定类型参数的通用接口的所有实现吗
我有一个通用接口,IValidator。我希望能够使用StructureMap检索实现给定类型T的IValidator的所有类的列表。例如C# 我可以使用StructureMap返回特定类型参数的通用接口的所有实现吗,c#,generics,structuremap,C#,Generics,Structuremap,我有一个通用接口,IValidator。我希望能够使用StructureMap检索实现给定类型T的IValidator的所有类的列表。例如 var PersonValidators = ObjectFactory.GetAllInstances<IValidator<Person>>(); var AddressValidators = ObjectFactory.GetAllInstances<IValidator<Address>>(); v
var PersonValidators = ObjectFactory.GetAllInstances<IValidator<Person>>();
var AddressValidators = ObjectFactory.GetAllInstances<IValidator<Address>>();
var PersonValidators=ObjectFactory.GetAllInstances();
var AddressValidators=ObjectFactory.GetAllInstances();
我知道如何检索实现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>>();
ObjectFactory.Initialize(x=>
{
x、 扫描(扫描=>
{
扫描。卡入总成();
scan.WithDefaultConventions();
scan.AddAllTypesOf();
scan.AddAllTypesOf();
});
});
var PersonValidators=ObjectFactory.GetAllInstances();