[C# - Prism] 프리즘 예제 01 - BootStrapperShellC#/Prism2023. 7. 16. 10:18
Table of Contents
안녕하세요, 반나무입니다.
Prism예제를 정리해보는 첫번째 글입니다.
Prism을 사용하기 위해서는 처음에 Init을 해야합니다.
Init 방법에는 제가 사용하는 방식은 두가지가 있는데 우선 예제는 그 중 첫번째인 BootStrapperShell에 대해 안내합니다.
우선 Bootstrapper 클래스를 만들고 PrismBootstrapper 클래스를 상속받습니다.
PrismBootstrapper 클래스는 예제에서는 Prism.Unity를 사용하지만. 저는 Prism.DryIoc를 사용중입니다.
// BootstapperShell.cs
class Bootstrapper : PrismBootstrapper
{
// Shell을 만들어준다.
protected override DependencyObject CreateShell()
{
return Container.Resolve<MainWindow>();
}
// 추후 container등록을 위한 함수
protected override void RegisterTypes(IContainerRegistry containerRegistry) { }
}
App.xaml에서는 App을 시작하는 부분을 삭제하고 App.xaml.cs에서 OnStartup을 override합니다.
Startup을 삭제하지 않을 시 두번 실행되는 문제가 있습니다.
<Application 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">
<!-- Startup 삭제 후 .cs 에서 override -->
<Application.Resources>
</Application.Resources>
</Application>
OnStartup에서 Bootstrapper 클래스를 생성 후 Run해주면 MainWindow가 생성되어 실행됩니다.
// App.xaml.cs
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var bootstrapper = new Bootstrapper();
bootstrapper.Run();
}
}
반응형
'C# > Prism' 카테고리의 다른 글
[C# - Prism] 프리즘 예제 05 - ViewInjection (0) | 2023.07.19 |
---|---|
[C# - Prism] 프리즘 예제 04 - ViewDiscovery (0) | 2023.07.16 |
[C# - Prism] 프리즘 예제 03 - CustomRegions (0) | 2023.07.16 |
[C# - Prism] 프리즘 예제 02 - Regions (0) | 2023.07.16 |
[C#] Prism 정리 (0) | 2023.07.16 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!