Beispiel #1
0
                    static void ConfigureServices(IServiceCollection services, DILevel level)
                    {
                        ConfigureRequiredServices(services);
#if StartupTrace
                        StartupTrace.Restart("DI.ConfigureRequiredServices");
#endif
                        ConfigureDemandServices(services, level);
#if StartupTrace
                        StartupTrace.Restart("DI.ConfigureDemandServices");
#endif
                    }
 public StartupOptions(DILevel level)
 {
     mValue = this;
     HasMainProcessRequired = level.HasFlag(DILevel.MainProcessRequired);
     HasNotifyIcon          = HasMainProcessRequired;
     HasGUI               = level.HasFlag(DILevel.GUI);
     HasServerApiClient   = level.HasFlag(DILevel.ServerApiClient);
     HasHttpClientFactory = level.HasFlag(DILevel.HttpClientFactory);
     HasHttpProxy         = level.HasFlag(DILevel.HttpProxy);
     HasHosts             = level.HasFlag(DILevel.Hosts);
     HasSteam             = level.HasFlag(DILevel.Steam);
 }
Beispiel #3
0
        /// <summary>
        /// 初始化启动
        /// </summary>
        public static void Init(DILevel level)
        {
            if (!isInitialized)
            {
                isInitialized = true;
#if !__MOBILE__
                FileSystemDesktop.InitFileSystem();
#if StartupTrace
                StartupTrace.Restart("Startup.InitFileSystem");
#endif
#endif
                if (level.HasFlag(DILevel.ServerApiClient))
                {
                    ModelValidatorProvider.Init();
#if StartupTrace
                    StartupTrace.Restart("ModelValidatorProvider.Init");
#endif
                }
                InitDI(level);
#if StartupTrace
                StartupTrace.Restart($"InitDI: {level}");
Beispiel #4
0
        /// <summary>
        /// 初始化启动
        /// </summary>
        public static void Init(DILevel level)
        {
            if (!isInitialized)
            {
                isInitialized = true;
#if StartupTrace
                StartupTrace.Restart("Startup.InitFileSystem");
#endif
                var options = new StartupOptions(level);
                if (options.HasServerApiClient)
                {
                    ModelValidatorProvider.Init();
#if StartupTrace
                    StartupTrace.Restart("ModelValidatorProvider.Init");
#endif
                }
                InitDI(options);
#if StartupTrace
                StartupTrace.Restart($"InitDI: {level}");
#endif
                if (!Essentials.IsSupported)
                {
                    // 在 Xamarin.Essentials 支持的平台上由平台 Application 初始化时调用
                    // 通常在 DI 之前,例如 Android 上的 MainApplication.OnCreate
                    VersionTracking2.Track();
#if StartupTrace
                    StartupTrace.Restart($"VersionTracking2.Track");
#endif
                }

                Migrations.Up();
#if StartupTrace
                StartupTrace.Restart($"Migrations.Up");
#endif
            }
        }
Beispiel #5
0
        public override void OnCreate()
        {
            base.OnCreate();

            VisualStudioAppCenterSDK.Init();

            XEFileProvider.TemporaryLocation = FileProviderLocation.Internal;
            XEPlatform.Init(this); // 初始化 Xamarin.Essentials.Platform.Init

            bool GetIsMainProcess()
            {
                // 注意:进程名可以自定义,默认是包名,如果自定义了主进程名,这里就有误,所以不要自定义主进程名!
                var name = this.GetCurrentProcessName();

                return(name == PackageName);
            }

            IsMainProcess = GetIsMainProcess();

            DILevel level = DILevel.Min;

            if (IsMainProcess)
            {
                level = DILevel.MainProcess;
            }
            Startup.Init(level);

            if (IsMainProcess)
            {
                XEVersionTracking.Track();
            }

#if DEBUG
            Log.Debug("Application", "OnCreate Complete.");
#endif
        }
Beispiel #6
0
                static void InitDI(DILevel level)
                {
#if UI_DEMO
                    DI.Init(new MockServiceProvider(ConfigureDemoServices));
#else
                    DI.Init(s => ConfigureServices(s, level));