Tengo una necesidad de apuntar a un método en enlaces Ninject como parte de un argumento de constructor. El constructor de la clase es el siguiente:Ninject Pass Delegate en WithConstructorArgument
MyObject(Func<Populator> param1, TimeSpan time)
he estado buscando y no han sido capaces de encontrar una manera de obligar a la delegada de la Func. ¿Esto es posible? Ninject no me deja hacer esto porque espera un objeto como argumento y no tomará un delegado.
Bind<IInterface>()
.To<MyObject>()
.InSingletonScope()
.WithConstructorArgument
("param1", ctx => ctx.Kernel.Get<OtherWiredObject>().PopMethod)
.WithConstructorArgument
("time", new TimeSpan(0,30,0));
¿Hay alguna forma de que este comportamiento funcione en Ninject?
que sobrecargar parece ser una función de devolución de llamada. ¿Qué pasaría si hiciera '() => Kernel.Get(). PopMethod'? –
dotjoe
Sin dados, lo conecté como '() => Kernel.Get(). PopMethod' Mirando la firma del método WithConstructorArgument para esto, el Func espera que se devuelva un objeto, y tengo que devolver un Func a El parámetro. Quizás hay otra forma de evitar esto? –
es 'PopMethod' una propiedad de tipo' Populator'? – dotjoe