Dynamically Loading ModuleCatalog in Composite (PRISM) Silverlight Application

Intercept the Run method of your bootstrapper by defining a new Run method, fetch the list of modules (list trimmed to the user in question of course) and populate the catalog from this.

poc code?
Here you are (note I am using a custom RIA domain service to trim the list of modules)

    public class Bootstrapper : UnityBootstrapper
ModuleCatalog catalog = new ModuleCatalog();
new public void Run()
AuthenticationContext ctx = new AuthenticationContext();
EntityQuery<Module> query = ctx.GetModulesQuery();
ctx.Load<Module>(query, loadOperation =>
if (loadOperation.HasError)
throw new Exception("Not able to load catalog");
foreach (var item in ctx.Modules)
catalog.AddModule(new ModuleInfo()
InitializationMode = (InitializationMode)Enum.Parse(typeof(InitializationMode), item.InitializationMode, true),
ModuleName = item.Name,
ModuleType = item.TypeName,
Ref = item.Xap



protected override DependencyObject CreateShell()
Shell shell = Container.Resolve<Shell>();
Application.Current.RootVisual = shell;
return shell;

protected override IModuleCatalog GetModuleCatalog()
return catalog;

Comments (2)

  1. ThomasGustafsson says:


    So you finally made an update to your blog… Awesome! ;o)

  2. Kevin says:

    How do you know who the user in question is?

Skip to main content