按类型名称从StructureMap获取实例

时间:2010-03-11 16:29:52

标签: c# structuremap ioc-container

有没有办法通过类型的字符串名称从StructureMap ObjectFactory请求实例?例如,做这样的事情会很好:

var thing = ObjectFactory.GetInstance("Thing");

此处的用例是一种消息传递方案,其中消息非常通用,仅包含任务的名称。处理程序接收消息,从消息中获取任务名称,并从配置数据库中检索关联任务运行器的类型名称。 StructureMap扫描目录中的所有程序集,其中一个(可能)包含从配置数据库返回的类型,然后需要对其进行实例化。

另一种可能性是通过执行以下操作来获取Type实例:

var type = Type.GetType("Thing");

但问题是可能会或可能/不会在AppDomain中加载程序集,因此并不总是可以进行反射调用。

1 个答案:

答案 0 :(得分:0)

我最近遇到了完全相同的问题,GetType没有返回类型事件,尽管StructureMap已经从扫描的程序集中正确加载了它。

我的问题是我没有使用程序集限定名称,我认为没有这个GetType方法只是在当前程序集中查找。

无论如何,添加全名都会解决我的问题。

希望这有帮助。

伊恩