StructureMap在构造函数中传递参数

时间:2013-03-15 13:32:23

标签: structuremap

我有一个带有一些artuments的构造函数

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>();

这里我想传递构造函数正在接受的Arguments。 我怎么能这样做。

此致

2 个答案:

答案 0 :(得分:8)

如果要在调用ObjectFactory时指定参数,可以这样做:

ObjectFactory.With("str").EqualTo(someValue).GetInstance<IAppEngine>();

如果您需要做多个参数,您可以将它们链接在一起。请注意,您还可以在像这样进行初始化时为所有实例定义构造函数值:

ForRequestedType<IAppEngine>().Use<AppEngine>().WithCtorArg("str").EqualTo(someValue);

答案 1 :(得分:-1)

//Arguments Constructor    
Example(int id,String Name){    //Define    }//main method  
//Object Creation    
//Object  Creation for Default Constructor
Example e1=new Example();
//Object Creation for Arguments Constructor
Example e2=new Example(101,"kathik");}