Я использую Prism 6.1.0 в первый раз. Я создал новый проект WPF, чтобы попробовать вкус новейшей призмы.Prism 6.1.0 реализация MefBootstrapper: метод CreateShell генерирует исключение
Моя оболочка выглядит следующим образом:
<Window x:Class="Prism.Shell"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Prism"
mc:Ignorable="d"
Title="Shell"
Height="300"
Width="300">
<Grid Background="HotPink"></Grid>
using System.ComponentModel.Composition;
using System.Windows;
namespace Prism
{
/// <summary>
/// Interaction logic for Shell.xaml
/// </summary>
[Export]
public partial class Shell : Window
{
public Shell()
{
InitializeComponent();
}
}
}
Bootstrapper:
using Prism.Mef;
using System.ComponentModel.Composition.Hosting;
using System.Windows;
namespace Prism
{
public class MyBootstrapper : MefBootstrapper
{
protected override DependencyObject CreateShell()
{
return Container.GetExportedValue<Shell>();
}
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (Window)Shell;
Application.Current.MainWindow.Show();
}
protected override void ConfigureAggregateCatalog()
{
base.ConfigureAggregateCatalog();
AggregateCatalog.Catalogs
.Add(new AssemblyCatalog(typeof(MyBootstrapper).Assembly));
}
}
}
и App C# код является:
using System.Windows;
namespace Prism
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
(new MyBootstrapper()).Run();
}
}
}
После этой линии: У меня есть исключение: Exception брошенный: «System.InvalidOperationException» в PresentationCore.dll Дополнительной информации: Вызывающий поток должен быть STA, так как многие компоненты пользовательского интерфейса требуют этого.
Кто-нибудь знает, как это исправить?
Когда я использовал призму 4.0, он работает. Спасибо за попытку. –
Я тестировал его на новейшей Prism 6.2 – bakala12