我有一个带有一些技巧的构造器
public class AppEngine:IAppEngine
{
private IGreeter _greeter;
private string _str;
public AppEngine(IGreeter greeter,string str)
{
_greeter = greeter;
_str = str;
}
public string Run()
{
return _greeter.Greeting()+":"+_str;
}
}
我想从工厂这里获取实例
var obj = ObjectFactory.GetInstance<IAppEngine>();
这里我想传递构造函数接受的参数。 我该怎么做。
问候
最佳答案
如果你想在调用 ObjectFactory 时指定参数,你可以这样做:
ObjectFactory.With("str").EqualTo(someValue).GetInstance<IAppEngine>();
如果您需要处理多个参数,您可以将它们链接在一起。请注意,您还可以在像这样初始化时为所有实例定义一个构造函数值:
ForRequestedType<IAppEngine>().Use<AppEngine>().WithCtorArg("str").EqualTo(someValue);
关于StructureMap 在构造函数中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433787/