Obtenga la extensión de fábrica ninject para permitir que los parámetros de fábrica se pasen a dependencias

Con la extensión Ninject Factory, puede generar fábricas automáticamente y dejar que la fábrica pase los parámetros al constructor de la clase. La siguiente prueba pasa:

public interface IBar
{
    int Foo { get; }
}

public class Bar : IBar
{
    int _foo;
    public Bar(int foo) { _foo = foo; }
    public int Foo { get { return _foo; } }
}

public interface IBarFactory
{
    IBar CreateTest(int foo);
}

[Test]
public void ExecuteTest()
{
    var kernel = new StandardKernel();
    kernel.Bind<IBar>().To<Bar>();
    kernel.Bind<IBarFactory>().ToFactory();
    var factory = kernel.Get<IBarFactory>();
    var actual = factory.CreateTest(42);
    Assert.That(actual, Is.InstanceOf<Bar>());
}

Sin embargo, en mi problema particular, me gustaría que pasara los argumentos de fábrica a una dependencia de la clase que estoy construyendo, no a la clase en sí, como esta:

public interface IBarContainer
{
    IBar Bar { get; }
}

public class BarContainer : IBarContainer
{
    IBar _bar;
    public BarContainer(IBar bar) { _bar = bar; }
    public IBar Bar { get { return _bar; } }
}

public interface ITestContainerFactory
{
    IBarContainer CreateTestContainer(int foo);
}

[Test]
public void ExecuteTestContainer()
{
    var kernel = new StandardKernel();
    kernel.Bind<IBar>().To<Bar>();
    kernel.Bind<IBarContainer>().To<BarContainer>();
    kernel.Bind<ITestContainerFactory>().ToFactory();
    var factory = kernel.Get<ITestContainerFactory>();
    var actual = factory.CreateTestContainer(42);
    Assert.That(actual.Bar, Is.InstanceOf<Bar>());
}

Esta prueba falla con el mensaje:

Ninject.ActivationException: Error al activar int No hay enlaces coincidentes disponibles, y el tipo no es auto-vinculable. Ruta de activación:
3) Inyección de la dependencia int en el parámetro foo del constructor de tipo Bar
2) Inyección de la dependencia IBar en la barra de parámetros del constructor de tipo BarContainer
1) Solicitud de IBarContainer

¿Hay alguna manera de hacer que la fábrica se dé cuenta de que quiero usar el argumento 'foo' pasado al resolver la dependencia de 'Barra'?

Respuestas a la pregunta(3)

Su respuesta a la pregunta