我正在开发一个使用NInject创建对象实例的ASP.NET MVC 3项目。它为每个Action构建一个对象图。它在大多数情况下运作良好。但是,我有一个新的要求,即必须将一些参数(从请求)传递到对象图中的一些对象(它们是暂态的)。 我该怎么做?下面是一个例子:如何将参数传递给由Ninject创建的瞬态对象?
class MyController : Controller
{
[Inject]
public IProcess Process {get;set;}
public ActionResult MyAction(int value)
{
// how to pass the 'value' to an object (IOptions) created by NInject
this.Process.Run();
}
}
如在上面的代码中所示,处理场所被注射受NInject创建的IProcess
一个实例。场景后面有一个复杂的对象图。我想将'value'传递给对象图中的一个对象,这是IProcess
实例使用的IOptions
的一个瞬态实例。 IOptions
接口有一个名为SetValue(int)
的方法。
我想要做的事情是,当IOptions对象被创建时,它的SetValue(int)将被调用。当然,它应该是线程安全的。
有什么想法?
当MyAction被调用时,您是否可以创建IProcess实例?然后我可以给你一个答案 –
是的,可以在MyAction中创建IProcess。请帮忙。注意:解决方案应该是线程安全的,因为MyAction()将在不同的线程上执行。 – Zach