App.xaml.cs

(完整代码) 1KB

using Microsoft.Extensions.DependencyInjection;
using MyApp.Services;
using System;
using System.Windows;

namespace MyApp
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        /// <summary>
        /// The `IServiceProvider` instance to resolve application services.
        /// </summary>
        public IServiceProvider ServiceProvider { get; private set; }

        public App()
        {
            IServiceCollection services = CollectAllServices();

            ServiceProvider = services.BuildServiceProvider();
        }

        /// <summary>
        /// Gets the current <see cref="App"/> instance in use
        /// </summary>
        public static new App Current => (App)Application.Current;

        private static IServiceCollection CollectAllServices()
        {
            return new ServiceCollection()
                .AddSingleton<IDataService, XmlDataService>()
                .AddSingleton<IOrderService, MockOrderService>()
                .AddSingleton<MainWindow>()
                .AddSingleton<MainWindowViewModel>();
        }

        protected override void OnStartup(StartupEventArgs args)
        {
            MainWindow wnd = ServiceProvider.GetRequiredService<MainWindow>();
            wnd.Show();
            base.OnStartup(args);
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。