¿Puedo usar mi proyecto Ninject .NET dentro de Orchard CMS?

Estoy creando un sitio web usando Orchard CMS y tengo un proyecto externo .NET escrito con Ninject para inyección de dependencia que me gustaría usar junto con un módulo dentro de Orchard CMS. Sé que Orchard usa Autofac para inyección de dependencia y esto me está causando problemas, ya que nunca había trabajado con DI antes.

He creado un módulo Autofac,UserModule, que registra la fuente,UserRegistrationSource, Me gusta esto:

UserModule.cs

public class UserModule : Module
{
    protected override void Load(ContainerBuilder builder)
    {
        builder.RegisterSource(new UserRegistrationSource());
    }
}

UserRegistrationSource.cs

public class UserRegistrationSource : IRegistrationSource
{
    public bool IsAdapterForIndividualComponents
    {
        get { return false; }
    }

    public IEnumerable<IComponentRegistration> RegistrationsFor(Service service, Func<Service, IEnumerable<IComponentRegistration>> registrationAccessor)
    {
        var serviceWithType = service as IServiceWithType;
        if (serviceWithType == null)
            yield break;

        var serviceType = serviceWithType.ServiceType;
        if (!serviceType.IsInterface || !typeof(IUserServices).IsAssignableFrom(serviceType) || serviceType != typeof(IUserServices))
            yield break;

        var registrationBuilder = // something...

        yield return registrationBuilder.CreateRegistration();
    }
}

UserServices.cs

public interface IUserServices : IDependency
{
    void Add(string email, string password);
}

public class UserServices : IUserServices
{
    private readonly EFMembershipManager _manager;

    public UserServices(EFMembershipManager manager)
    {
        _manager = manager;
    }

    public void Add(string email, string password)
    {
        _manager.createUser(email, password);
    }
}

EFMembershipManager.cs constructor

public EFMembershipManager(ServerRepository db,
                           ServerRepositoryMembershipProvider membershipProvider,
                           string testUsername,
                           string serverUsername)
{
...
}

EFMembershipManager es una clase del proyecto externo que usa Ninject para DI y usaServerRepository yServerRepositoryMembershipProvider A los que también se les inyecta utilizando Ninject.

Y ahora estoy atascado ...

DeberíaUserRegistrationSource tomar el contenedor Ninject (kernel) como un argumento de constructor y tratar de encontrar elIUserServices servicio y luego mediar las resoluciones en el kernel Ninject y devolver un Enumerable vacío para que Autofac no intente resolver nada relacionado conIUserServices o es este el enfoque equivocado?

Respuestas a la pregunta(1)

Su respuesta a la pregunta