Bootstrapper
クラスはPrism 7で廃止されているため、PrismApplication
クラスを使用してC#WPFアプリを変更したいと思います。
Bootstrapper : UnityBootstrapper
を使用してPrism 6アプリを新しいPrismApplication
にリファクタリングする方法を知っている人はいますか?
これらのプレリリースに関するドキュメントは非常に限られており、Prismソースコードを見るだけで何をする必要があるのかを理解するのに最善ではないため、私は尋ねています。
それはあなたのブートストラップが何をするかに依存しますが、Prism.Unity.PrismApplication
にはオーバーライドする同様のメソッドがあるため、ブートストラップからコードをコピーできるはずです。おそらく、必要なのはRegisterTypes
とCreateShell
だけです。必ず更新してくださいApp.xaml
アプリケーションのタイプを変更するには...
App.xaml
は次のようになります。
<prism:PrismApplication x:Class="WpfApp1.App"
x:ClassModifier="internal"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
xmlns:prism="http://prismlibrary.com/"/>
完全を期すために、App.xaml.cs
:
internal partial class App
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
throw new NotImplementedException();
}
protected override Window CreateShell()
{
throw new NotImplementedException();
}
}
GitHubのプリズムサンプル のサンプル1から始め、すぐにUnityBootstrapper
の使用は非推奨であるという警告が表示されます。それで、私はそれを現在のメカニズムにアップグレードしようとしました。
最初のステップは、アプリケーションの基本クラスをApp.xaml
のApplication
からPrismApplication
に置き換えることです。これは次のようになります。
<unity:PrismApplication x:Class="BootstrapperShell.App"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:BootstrapperShell"
xmlns:unity="http://prismlibrary.com/">
<Application.Resources>
</Application.Resources>
</unity:PrismApplication>
次に、App.xaml.cs
で、Application
への参照を削除し、PrismApplication
の抽象メソッドを実装します。 Bootstrapper.cs
のInitializeShell
の内容をCreateShell()
メソッドにコピーします。最終結果は次のようになります。
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App
{
protected override Window CreateShell()
{
return Container.Resolve<MainWindow>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
}
}
また、MainWindow.xaml
にマークアップを追加して、正しく解決されるようにしました。
<Window x:Class="BootstrapperShell.Views.MainWindow"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
Title="Shell" Height="350" Width="525">
<Grid>
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="24">Hello</TextBlock>
</Grid>
</Window>
すべてが以前と同じように機能するはずです。