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); }
/// <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}");
/// <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 } }
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 }
static void InitDI(DILevel level) { #if UI_DEMO DI.Init(new MockServiceProvider(ConfigureDemoServices)); #else DI.Init(s => ConfigureServices(s, level));