У меня есть основное приложение WPF и другие модули, и я использую PRISM для размещения представления модулей в разных регионах, определенных в моей командной консоли.Это прекрасно работает для меня.Теперь у меня есть требование установить главное приложение как библиотеку классов и вызвать его из другого оконного приложения.Это новое приложение Window имеет функцию Main со следующим кодом.
[System.STAThreadAttribute()]
public static void Main()
{
Application app = new Application();
IStartupUI start = new StartupUI();
start.StartUserInterface();
app.Run();
}
start.StartUserInterface в основном вызывает функцию в DLL, которая имеет следующий код
ABCBootStrapper bootstrapper = new ABCBootStrapper ();
bootstrapper.Run();
Тот же фрагменткод был ранее вызван в OnStartup, когда сам Dll был основным приложением.
Теперь с этим изменением Shell не показывает никакого представления.При отладке я обнаружил, что RegionManager не распознает регионы, определенные в командной консоли.В основном количество регионов, зарегистрированных в RegionManager, равно 0. Все регионы, определенные в оболочке, являются ContentControl.