有没有办法通过类型的字符串名称从StructureMap ObjectFactory请求实例?例如,做这样的事情会很好:
var thing = ObjectFactory.GetInstance("Thing");
此处的用例是一种消息传递方案,其中消息非常通用,仅包含任务的名称。处理程序接收消息,从消息中获取任务名称,并从配置数据库中检索关联任务运行器的类型名称。 StructureMap扫描目录中的所有程序集,其中一个(可能)包含从配置数据库返回的类型,然后需要对其进行实例化。
另一种可能性是通过执行以下操作来获取Type实例:
var type = Type.GetType("Thing");
但问题是可能会或可能/不会在AppDomain中加载程序集,因此并不总是可以进行反射调用。
答案 0 :(得分:0)
我最近遇到了完全相同的问题,GetType
没有返回类型事件,尽管StructureMap已经从扫描的程序集中正确加载了它。
我的问题是我没有使用程序集限定名称,我认为没有这个GetType
方法只是在当前程序集中查找。
无论如何,添加全名都会解决我的问题。
希望这有帮助。
伊恩