我想为 NInject (v1.0) 创建一个 OnePerSessionBehavior,而且我大部分时间都在工作。剩下的唯一问题是如何使用 .WithArguments() 传递新的参数,因为每个新会话都要求容器提供一些东西。现在我将容器的引用保留为应用程序变量,因此该模块只加载一次,所以当然绑定只发生一次。
例如,以下为每个新会话返回 'Something' 的各个实例,但传递给所有会话的构造函数参数是相同的 DateTime。
Bind<ISomething>()
.To<Something>()
.Using<OnePerSessionBehavior>()
.WithArgument("currentDateTime", DateTime.Now);