Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove all GetAssemblies() implementations #4583

Merged
merged 3 commits into from
Feb 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions src/Compatibility/ControlGallery/src/Core/Startup.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -23,22 +24,22 @@ public static MauiAppBuilder CreateMauiAppBuilder()
.UseMauiApp<App>()
.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;
}
Expand Down
5 changes: 0 additions & 5 deletions src/Compatibility/Core/src/Android/Forms.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 0 additions & 5 deletions src/Compatibility/Core/src/GTK/GtkPlatformServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 0 additions & 5 deletions src/Compatibility/Core/src/Tizen/TizenPlatformServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,6 @@ public async Task<Stream> GetStreamAsync(Uri uri, CancellationToken cancellation
return await response.Content.ReadAsStreamAsync();
}

public Assembly[] GetAssemblies()
{
return AppDomain.CurrentDomain.GetAssemblies();
}

public IIsolatedStorageFile GetUserStoreForApplication()
{
return new TizenIsolatedStorageFile();
Expand Down
5 changes: 0 additions & 5 deletions src/Compatibility/Core/src/WPF/WPFPlatformServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
61 changes: 0 additions & 61 deletions src/Compatibility/Core/src/Windows/WindowsPlatformServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<StorageFile> files = query.GetFilesAsync().AsTask().Result;

var assemblies = new List<Assembly>(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<Assembly> 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<Assembly> 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();
Expand Down
5 changes: 0 additions & 5 deletions src/Compatibility/Core/src/iOS/Forms.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 0 additions & 5 deletions src/Controls/DualScreen/test/MockPlatformServices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,6 @@ public Task<Stream> 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)
Expand Down
26 changes: 0 additions & 26 deletions src/Controls/docs/Microsoft.Maui.Controls/Device.xml
Original file line number Diff line number Diff line change
Expand Up @@ -106,32 +106,6 @@ Device.BeginInvokeOnMainThread (() => {
</remarks>
</Docs>
</Member>
<Member MemberName="GetAssemblies">
<MemberSignature Language="C#" Value="public static System.Reflection.Assembly[] GetAssemblies ();" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Reflection.Assembly[] GetAssemblies() cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Maui.Controls.Device.GetAssemblies" />
<MemberSignature Language="F#" Value="static member GetAssemblies : unit -&gt; System.Reflection.Assembly[]" Usage="Microsoft.Maui.Controls.Device.GetAssemblies " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyName>Microsoft.Maui.Controls.Core</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Reflection.Assembly[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>For internal use by the Microsoft.Maui.Controls platform.</summary>
<returns>For internal use by the Microsoft.Maui.Controls platform.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetMainThreadSynchronizationContextAsync">
<MemberSignature Language="C#" Value="public static System.Threading.Tasks.Task&lt;System.Threading.SynchronizationContext&gt; GetMainThreadSynchronizationContextAsync ();" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Tasks.Task`1&lt;class System.Threading.SynchronizationContext&gt; GetMainThreadSynchronizationContextAsync() cil managed" />
Expand Down
2 changes: 1 addition & 1 deletion src/Controls/src/Core/DependencyService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
7 changes: 0 additions & 7 deletions src/Controls/src/Core/Device.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,6 @@ public static void StartTimer(TimeSpan interval, Func<bool> callback)
PlatformServices.StartTimer(interval, callback);
}

/// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GetAssemblies']/Docs" />
[EditorBrowsable(EditorBrowsableState.Never)]
public static Assembly[] GetAssemblies()
{
return AppDomain.CurrentDomain.GetAssemblies();
}

/// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GetNamedSize'][2]/Docs" />
[EditorBrowsable(EditorBrowsableState.Never)]
public static double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes)
Expand Down
2 changes: 1 addition & 1 deletion src/Controls/src/Core/Registrar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion src/Controls/src/Core/Visuals/VisualTypeConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public override bool CanConvertTo(ITypeDescriptorContext context, Type destinati
void InitMappings()
{
var mappings = new Dictionary<string, IVisual>(StringComparer.OrdinalIgnoreCase);
Assembly[] assemblies = Device.GetAssemblies();
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();

// Check for IVisual Types
foreach (var assembly in assemblies)
Expand Down