如何在StructureMap中获取所有可能的泛型类型?

时间:2010-03-12 08:42:19

标签: generics class structuremap

我几天前刚刚使用过StructureMap。我使用StructureMap来收集所有验证器类,如下面的代码。

public class BaseClassA {}

public class ClassB : BaseClassA {}

public class ClassC : BaseClassB {}

public BaseClassAValidator : IValidator<BaseClassA>() {}

在StructureMap中,我只为IValidator<BaseClassA>类注册BaseClassAValidator接口。但是当我调用IValidator<ClassB>IValidator<ClassC>时,我想得到相同的结果,这意味着StructureMap应该返回IValidator<T>,其中T是被请求类的类或父类。

有可能吗?或者我需要手动调用它。

1 个答案:

答案 0 :(得分:0)

从答案How to use a convention for IRepository<T> with StructureMap mapping

var c = new Container(x =>
{
    x.Scan(scan =>
    {
        // there are other options to expand which assemblies to scan for types
        scan.TheCallingAssembly(); 
        scan.ConnectImplementationsToTypesClosing(typeof (IValidator<>));
    });
});

现在,如果您请求IValidator<ClassC>,则应获得BaseClassCValidator