Ninject Factory en tipos derivados

Estoy viendo la extensión de Ninject Factory en el siguiente enlace:http: //www.planetgeek.ch/2011/12/31/ninject-extensions-factory-introduction

Estoy tratando de entender la extensión y ver si realmente encaja en lo que estoy tratando de hacer.

¿Puede la extensión de fábrica crear diferentes tipos en función de un parámetro que se pasa?

Ejemplo

class Base {}
class Foo : Base {}
class Bar : Base {}

interface IBaseFactory
{
    Base Create(string type);
}

kernel.Bind<IBaseFactory>().ToFactory();

Lo que quiero poder hacer es esto:

factory.Create("Foo") // returns a Foo
factory.Create("Bar") // returns a Bar
factory.Create("AnythingElse") // returns null or throws exception?

¿Puede esta extensión hacer esto o este no es realmente uno de los usos previstos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta