/
makarenkova
/
c_sharp
Обзор
Документация
Войти
/
makarenkova
/
c_sharp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PlannerProject/Modules/Planner.Modules.Main/MainModule.cs
69 строк
3 KB
Makarenkova Vera
Небольшая доработка
17 май 2026, 12:12
17 май 2026, 12:12
ec9cf57
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using Planner.Modules.Main.Data; using Planner.Modules.Main.Services; using Planner.Modules.Main.ViewModels; using Planner.Modules.Main.Views; using Planner.Shared; using Prism.Ioc; using Prism.Modularity; using Prism.Regions; using System; using System.Windows; namespace Planner.Modules.Main { public class MainModule : IModule { public void OnInitialized(IContainerProvider containerProvider) { // обращение к DI контейнеру (Unity) и получение экземпляра IRegionManager var rm = containerProvider.Resolve<IRegionManager>(); // Регистрация Представления в Регионе: // в регион MainRegion будет автоматически добавлен MainView rm.RegisterViewWithRegion(Regions.MainRegion, Navigation.MainPage); } public void RegisterTypes(IContainerRegistry containerRegistry) { try { // регистрация главной ViewModel containerRegistry.Register<MainViewModel>(); // регистрация представления для навигации containerRegistry.RegisterForNavigation<MainView>(); // регистрация диалога выбора даты и времени containerRegistry.RegisterDialog<DatePickerDialog, DatePickerDialogViewModel>(); // регистрация контекста БД (будет создан в единственном экземпляре) containerRegistry.RegisterSingleton<PlannerDbContext>(() => { // Путь рядом с exe var path = System.IO.Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "Planner.db"); var options = new DbContextOptionsBuilder<PlannerDbContext>() .UseSqlite($"Data Source={path}") // база данных SQLite .Options; var context = new PlannerDbContext(options); // Создание БД, если её нет context.Database.EnsureCreated(); return context; }); // Регистрация сервиса БД // Когда контейнеру понадобится IDBService, он должен создать DBService. containerRegistry.Register<IDBService, DBService>(); } catch (Exception ex) { MessageBox.Show($"Ошибка при регистрации типов: {ex.Message}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); throw; } } } }