这类似于StructureMap - Override constructor arguments for a named instance提出的问题,但在编码时我不知道类型的方面有所不同,因此不能使用GetInstance()的通用形式。
所以同时:
ObjectFactory.With(IFoo).GetInstance<IBar>("foobar");
会起作用,显然没办法打电话:
ObjectFactory.With(IFoo).GetInstance(typeof(IBar), "foobar");
我有一个解决方法,在私有方法的MethodInfo上使用私有泛型方法和MakeGenericMethod()。
正如您可能想象的那样,我对这种方法并不满意,但我看不出任何其他方法。
答案 0 :(得分:0)
您需要的方法是GetNamedInstance(),当您使用With()方法时,该方法不可用。我确定添加它不会太难,也许你可以给Jeremy Miller发电子邮件,看看他是否可以在StructureMap 3中添加它。或者提交补丁:)