我刚接触StructureMap,正在尝试一个简单的场景
我扫描基本文件夹中的所有程序集,并查找实现我的开放通用接口的类型。
Scan(
scan => {
scan.AssembliesFromApplicationBaseDirectory();
scan.AddAllTypesOf(typeof(IHandler<>));
});
这是有效的,我可以看到它注册了所有这样的类型,但当涉及到获取所有类型的列表时,我面临以下语句返回null的问题。
var list = container.GetAllInstances(typeof(IHandler<>));
但是,我可以使用具体的类型名获得类型,而不会有任何问题
var obj = container.GetInstance(typeof(IHandler<ConcreteHandler>));
所以我想得到的是实现IHandler<>因为我不知道具体的类型名称,稍后会在每个对象上调用一个接口方法来找出要使用的正确对象。
不确定是否可能,但如果StructureMap允许我调用接口方法,并且只获取作为方法调用结果返回例如true的类型,那就更好了。
谢谢
松鸦。