将构造函数参数传递给结构图中的命名实例其中Type仅在运行时已知

时间:2010-11-22 16:29:20

标签: structuremap ioc-container

这类似于StructureMap - Override constructor arguments for a named instance提出的问题,但在编码时我不知道类型的方面有所不同,因此不能使用GetInstance()的通用形式。

所以同时:

ObjectFactory.With(IFoo).GetInstance<IBar>("foobar");

会起作用,显然没办法打电话:

ObjectFactory.With(IFoo).GetInstance(typeof(IBar), "foobar");

我有一个解决方法,在私有方法的MethodInfo上使用私有泛型方法和MakeGenericMethod()。

正如您可能想象的那样,我对这种方法并不满意,但我看不出任何其他方法。

1 个答案:

答案 0 :(得分:0)

您需要的方法是GetNamedInstance(),当您使用With()方法时,该方法不可用。我确定添加它不会太难,也许你可以给Jeremy Miller发电子邮件,看看他是否可以在StructureMap 3中添加它。或者提交补丁:)