Carregando uma visualização de módulo prisma do shell, usando MEF

Tenho um projeto de shell que está carregando módulos no meu bootstrapper em um controle de guia na visualização principal do meu shel

Acabei de implementar um botão Fechar nos itens da minha guia, que agora coloca a questão de como recarregar as visualizações do módulo a partir do shel

Tentei usar

moduleManager.LoadModule("ModuleA");

mas isso só funciona quando o módulo é carregado pela primeira vez. Quando ligo para o acima, ele carrega e inicializa o módulo, exibindo a visualização. Se eu fechar a visualização novamente, na segunda vez que tentar, ela não reapresentará a visualização (suponho que não reinicialize o módulo como ele já está carregado

Então, pensei em usar algo como o seguinte no meu shell:

var moduleAView = ServiceLocator.Current.GetInstance<ModuleAView>();
regionManager.Regions["TabRegion"].Add(ModuleAView);
regionManager.Regions["TabRegion"].Activate(ModuleAView);

O problema dessa abordagem é como meu shell sabe sobre o tipo ModuleAView na linha 1? Não tenho uma referência ao módulo A e não quero adicionar um. Pensei em uma interface comum que o ModuleAView implementaria, que poderia ser compartilhada entre o módulo e o shell, mas recebi um erro de composição ao tentar usar a abordagem ServiceLocator.GetInstance como acima.

Muito obrigado pela sua ajuda.

PS Este é o código do módulo A que eu tente

[ModuleExport(typeof(ModuleA), InitializationMode = InitializationMode.OnDemand)]
[Module(ModuleName="ModuleA")]
public class ModuleA : IModule
{
    private IRegionManager _regionManager;

    [ImportingConstructor]
    public ModuleA(IRegionManager regionManager)
    {
        this._regionManager = regionManager;
    }

    public void Initialize()
    {
        // add the search view to the region manager.
        this._regionManager.RegisterViewWithRegion("TabRegion", typeof(Views.ModuleAView));
    }
}

questionAnswers(1)

yourAnswerToTheQuestion