如何将参数传递给IOC框架中的构造函数?我想做类似的事情:(试图成为IOC框架不可知;))
object objectToLogFor = xxx; container.Resolve(objectToLogFor); public class MyLogging : ILogging { public MyLogging(object objectToLogFor){} }
看起来这在StructureMap中是不可能的.但我很乐意看到有人证明我错了.
其他框架是否功能更丰富?或者我是以错误的方式使用IOC框架?
在结构图中,您可以使用With方法实现此目的:
string objectToLogFor = "PolicyName"; ObjectFactory.With(objectToLogFor).GetInstance ();
请参阅:http://codebetter.com/blogs/jeremy.miller/archive/2008/09/25/using-structuremap-2-5-to-inject-your-entity-objects-into-services.aspx
对于温莎城堡:
var foo = "foo"; var service = this.container.Resolve(new { constructorArg1 = foo });
请注意使用匿名对象来指定构造函数参数.
使用StructureMap:
var foo = "foo"; var service = container.With(foo).GetInstance();