I\'d like to create a OnePerSessionBehavior for NInject (v1.0) and I\'ve mostly got it working. The only issue that remains is how to pass in fresh arguments using .WithArgumen
Can you pass a lamda as your argument? For instance, if you have a class like this:
public class Something : ISomething
{
public Something(Action initializer)
{
var now = initializer();
}
}
You can bind it as follows:
Bind()
.To()
.Using()
.WithArgument("initializer", () => { return DateTime.Now; });
Though I don't know you exact situation, another idea would be to create your object without worrying about argument injection, and then set your properties:
kernel.Bind().To().Using();
var mySomething = kernel.Get();
mySomething.DateCreated = DateTime.Now;
or:
mySomething.Initialize(DateTime.Now);
Would either of those ideas work?