From 09faa7f403ce1d99ed4ce430a95c9e6c491db3cd Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Wed, 9 Feb 2022 21:18:47 +0000 Subject: [PATCH] Remove all GetAssemblies() implementations (#4583) * Remove all GetAssemblies() implementations Was removed from IPlatformServices some time ago * ns * android --- .../ControlGallery/src/Core/Startup.cs | 13 ++-- src/Compatibility/Core/src/Android/Forms.cs | 5 -- .../Core/src/GTK/GtkPlatformServices.cs | 5 -- .../Core/src/Tizen/TizenPlatformServices.cs | 5 -- .../Core/src/WPF/WPFPlatformServices.cs | 5 -- .../src/Windows/WindowsPlatformServices.cs | 61 ------------------- src/Compatibility/Core/src/iOS/Forms.cs | 5 -- .../DualScreen/test/MockPlatformServices.cs | 5 -- .../docs/Microsoft.Maui.Controls/Device.xml | 26 -------- src/Controls/src/Core/DependencyService.cs | 2 +- src/Controls/src/Core/Device.cs | 7 --- src/Controls/src/Core/Registrar.cs | 2 +- .../src/Core/Visuals/VisualTypeConverter.cs | 2 +- 13 files changed, 10 insertions(+), 133 deletions(-) diff --git a/src/Compatibility/ControlGallery/src/Core/Startup.cs b/src/Compatibility/ControlGallery/src/Core/Startup.cs index c1f67bd32b63..17ceb37dfe3d 100644 --- a/src/Compatibility/ControlGallery/src/Core/Startup.cs +++ b/src/Compatibility/ControlGallery/src/Core/Startup.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.DependencyInjection; +using System; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Maui; using Microsoft.Maui.Controls.Compatibility; using Microsoft.Maui.Controls.Hosting; @@ -23,22 +24,22 @@ public static MauiAppBuilder CreateMauiAppBuilder() .UseMauiApp() .ConfigureMauiHandlers(handlers => { - handlers.AddCompatibilityRenderers(Device.GetAssemblies()); + handlers.AddCompatibilityRenderers(AppDomain.CurrentDomain.GetAssemblies()); }) .ConfigureImageSources(sources => { - sources.AddCompatibilityServices(Device.GetAssemblies()); + sources.AddCompatibilityServices(AppDomain.CurrentDomain.GetAssemblies()); }) .ConfigureFonts(fonts => { - fonts.AddCompatibilityFonts(new FontRegistrar(new EmbeddedFontLoader()), Device.GetAssemblies()); + fonts.AddCompatibilityFonts(new FontRegistrar(new EmbeddedFontLoader()), AppDomain.CurrentDomain.GetAssemblies()); }) .ConfigureEffects(effects => { - effects.AddCompatibilityEffects(Device.GetAssemblies()); + effects.AddCompatibilityEffects(AppDomain.CurrentDomain.GetAssemblies()); }); - DependencyService.Register(Device.GetAssemblies()); + DependencyService.Register(AppDomain.CurrentDomain.GetAssemblies()); return builder; } diff --git a/src/Compatibility/Core/src/Android/Forms.cs b/src/Compatibility/Core/src/Android/Forms.cs index 261cc9bd9244..245efdce6586 100644 --- a/src/Compatibility/Core/src/Android/Forms.cs +++ b/src/Compatibility/Core/src/Android/Forms.cs @@ -336,11 +336,6 @@ public AndroidPlatformServices(Context context) _context = context; } - public Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - public double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) { if (_smallSize == 0) diff --git a/src/Compatibility/Core/src/GTK/GtkPlatformServices.cs b/src/Compatibility/Core/src/GTK/GtkPlatformServices.cs index 8fe59c07d96b..b0574535c333 100644 --- a/src/Compatibility/Core/src/GTK/GtkPlatformServices.cs +++ b/src/Compatibility/Core/src/GTK/GtkPlatformServices.cs @@ -25,11 +25,6 @@ public Ticker CreateTicker() return new GtkTicker(); } - public Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - public double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) { switch (size) diff --git a/src/Compatibility/Core/src/Tizen/TizenPlatformServices.cs b/src/Compatibility/Core/src/Tizen/TizenPlatformServices.cs index 369a40cb5e3b..df7c8d7a10df 100644 --- a/src/Compatibility/Core/src/Tizen/TizenPlatformServices.cs +++ b/src/Compatibility/Core/src/Tizen/TizenPlatformServices.cs @@ -129,11 +129,6 @@ public async Task GetStreamAsync(Uri uri, CancellationToken cancellation return await response.Content.ReadAsStreamAsync(); } - public Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - public IIsolatedStorageFile GetUserStoreForApplication() { return new TizenIsolatedStorageFile(); diff --git a/src/Compatibility/Core/src/WPF/WPFPlatformServices.cs b/src/Compatibility/Core/src/WPF/WPFPlatformServices.cs index dccb42ebe895..f6233aab3190 100644 --- a/src/Compatibility/Core/src/WPF/WPFPlatformServices.cs +++ b/src/Compatibility/Core/src/WPF/WPFPlatformServices.cs @@ -31,11 +31,6 @@ public Ticker CreateTicker() return new WPFTicker(); } - public Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - public double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) { switch (size) diff --git a/src/Compatibility/Core/src/Windows/WindowsPlatformServices.cs b/src/Compatibility/Core/src/Windows/WindowsPlatformServices.cs index 751be5df43fc..2194740c2338 100644 --- a/src/Compatibility/Core/src/Windows/WindowsPlatformServices.cs +++ b/src/Compatibility/Core/src/Windows/WindowsPlatformServices.cs @@ -27,67 +27,6 @@ public WindowsPlatformServices() _uiSettings.ColorValuesChanged += UISettingsColorValuesChanged; } - public virtual Assembly[] GetAssemblies() - { - var options = new QueryOptions { FileTypeFilter = { ".exe", ".dll" } }; - - StorageFileQueryResult query = Package.Current.InstalledLocation.CreateFileQueryWithOptions(options); - IReadOnlyList files = query.GetFilesAsync().AsTask().Result; - - var assemblies = new List(files.Count); - - LoadAllAssemblies(AppDomain.CurrentDomain.GetAssemblies(), assemblies); - - Assembly thisAssembly = GetType().GetTypeInfo().Assembly; - // this happens with .NET Native - if (!assemblies.Contains(thisAssembly)) - assemblies.Add(thisAssembly); - - Assembly coreAssembly = typeof(Microsoft.Maui.Controls.Label).GetTypeInfo().Assembly; - if (!assemblies.Contains(coreAssembly)) - assemblies.Add(coreAssembly); - - Assembly xamlAssembly = typeof(Microsoft.Maui.Controls.Xaml.Extensions).GetTypeInfo().Assembly; - if (!assemblies.Contains(xamlAssembly)) - assemblies.Add(xamlAssembly); - - return assemblies.ToArray(); - } - - void LoadAllAssemblies(Assembly[] files, List loaded) - { - for (var i = 0; i < files.Length; i++) - { - var asm = files[i]; - if (!loaded.Contains(asm)) - { - loaded.Add(asm); - } - } - } - - void LoadAllAssemblies(AssemblyName[] files, List loaded) - { - for (var i = 0; i < files.Length; i++) - { - try - { - var asm = Assembly.Load(files[i]); - if (!loaded.Contains(asm)) - { - loaded.Add(asm); - LoadAllAssemblies(asm.GetReferencedAssemblies(), loaded); - } - } - catch (IOException) - { - } - catch (BadImageFormatException) - { - } - } - } - public double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) { return size.GetFontSize(); diff --git a/src/Compatibility/Core/src/iOS/Forms.cs b/src/Compatibility/Core/src/iOS/Forms.cs index 9de0e9e2f9c6..1ab6052c6985 100644 --- a/src/Compatibility/Core/src/iOS/Forms.cs +++ b/src/Compatibility/Core/src/iOS/Forms.cs @@ -293,11 +293,6 @@ public IOSPlatformServices() #endif } - public Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - public double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) { // We make these up anyway, so new sizes didn't really change diff --git a/src/Controls/DualScreen/test/MockPlatformServices.cs b/src/Controls/DualScreen/test/MockPlatformServices.cs index 3c0069bf96d5..d5e29479d4a7 100644 --- a/src/Controls/DualScreen/test/MockPlatformServices.cs +++ b/src/Controls/DualScreen/test/MockPlatformServices.cs @@ -102,11 +102,6 @@ public Task GetStreamAsync(Uri uri, CancellationToken cancellationToken) return getStreamAsync(uri, cancellationToken); } - public Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - public SizeRequest GetNativeSize(VisualElement view, double widthConstraint, double heightConstraint) { if (getNativeSizeFunc != null) diff --git a/src/Controls/docs/Microsoft.Maui.Controls/Device.xml b/src/Controls/docs/Microsoft.Maui.Controls/Device.xml index 12ec8623a0b5..fbbe6330ad9c 100644 --- a/src/Controls/docs/Microsoft.Maui.Controls/Device.xml +++ b/src/Controls/docs/Microsoft.Maui.Controls/Device.xml @@ -106,32 +106,6 @@ Device.BeginInvokeOnMainThread (() => { - - - - - - Method - - 0.0.0.0 - 2.0.0.0 - Microsoft.Maui.Controls.Core - - - - System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never) - - - - System.Reflection.Assembly[] - - - - For internal use by the Microsoft.Maui.Controls platform. - For internal use by the Microsoft.Maui.Controls platform. - To be added. - - diff --git a/src/Controls/src/Core/DependencyService.cs b/src/Controls/src/Core/DependencyService.cs index fd8f846d9d65..0432527e24bd 100644 --- a/src/Controls/src/Core/DependencyService.cs +++ b/src/Controls/src/Core/DependencyService.cs @@ -115,7 +115,7 @@ static void Initialize() if (s_initialized) return; - Assembly[] assemblies = Device.GetAssemblies(); + Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); if (Internals.Registrar.ExtraAssemblies != null) { assemblies = assemblies.Union(Internals.Registrar.ExtraAssemblies).ToArray(); diff --git a/src/Controls/src/Core/Device.cs b/src/Controls/src/Core/Device.cs index 3d0337767d49..a0b5a26501a3 100644 --- a/src/Controls/src/Core/Device.cs +++ b/src/Controls/src/Core/Device.cs @@ -131,13 +131,6 @@ public static void StartTimer(TimeSpan interval, Func callback) PlatformServices.StartTimer(interval, callback); } - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public static Assembly[] GetAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); - } - /// [EditorBrowsable(EditorBrowsableState.Never)] public static double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) diff --git a/src/Controls/src/Core/Registrar.cs b/src/Controls/src/Core/Registrar.cs index e426caa12f2f..b954076f44e4 100644 --- a/src/Controls/src/Core/Registrar.cs +++ b/src/Controls/src/Core/Registrar.cs @@ -393,7 +393,7 @@ public static void RegisterAll(Type[] attrTypes, IFontRegistrar fontRegistrar = public static void RegisterAll(Type[] attrTypes, InitializationFlags flags, IFontRegistrar fontRegistrar = null) { RegisterAll( - Device.GetAssemblies(), + AppDomain.CurrentDomain.GetAssemblies(), Device.PlatformServices.GetType().GetTypeInfo().Assembly, attrTypes, flags, diff --git a/src/Controls/src/Core/Visuals/VisualTypeConverter.cs b/src/Controls/src/Core/Visuals/VisualTypeConverter.cs index c9898e781ca1..f169ca11d88d 100644 --- a/src/Controls/src/Core/Visuals/VisualTypeConverter.cs +++ b/src/Controls/src/Core/Visuals/VisualTypeConverter.cs @@ -26,7 +26,7 @@ public override bool CanConvertTo(ITypeDescriptorContext context, Type destinati void InitMappings() { var mappings = new Dictionary(StringComparer.OrdinalIgnoreCase); - Assembly[] assemblies = Device.GetAssemblies(); + Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); // Check for IVisual Types foreach (var assembly in assemblies)