If it helps. You are trying to create the shell in the wrong way. The create shell method should look like:
protected override DependencyObject CreateShell()
{
Shell shell = Container.Resolve<shell>();
shell.Show();
return shell;
}</shell>
Your shell constructor should be something like:
private IEventAggregator _eventAggregator;
public New(IEventAggregator aggregator)
{
InitializeComponent();
_eventAggregator = aggregator;
}
Doing it this way the aggregator argument will not be null.
I would really recommend looking at the samples provided with the Prism download.