Browse Source

Use features that are now available in netstandard.

Various features were moved into `IRuntimePlatform` because they weren't available on netstandard 1.x. They're now available in netstandard 2 so use them directly.
pull/1987/head
Steven Kirk 7 years ago
parent
commit
41c2159aaa
  1. 3
      src/Avalonia.Base/Platform/IRuntimePlatform.cs
  2. 2
      src/Avalonia.Controls/AppBuilderBase.cs
  3. 4
      src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs
  4. 2
      src/Linux/Avalonia.LinuxFramebuffer/Mice.cs
  5. 4
      src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaRuntimeTypeProvider.cs
  6. 2
      src/Shared/PlatformSupport/AssetLoader.cs
  7. 4
      src/Shared/PlatformSupport/StandardRuntimePlatform.cs

3
src/Avalonia.Base/Platform/IRuntimePlatform.cs

@ -5,10 +5,7 @@ namespace Avalonia.Platform
{
public interface IRuntimePlatform
{
Assembly[] GetLoadedAssemblies();
void PostThreadPoolItem(Action cb);
IDisposable StartSystemTimer(TimeSpan interval, Action tick);
string GetStackTrace();
RuntimePlatformInfo GetRuntimeInfo();
IUnmanagedBlob AllocBlob(int size);
}

2
src/Avalonia.Controls/AppBuilderBase.cs

@ -222,7 +222,7 @@ namespace Avalonia.Controls
private void SetupAvaloniaModules()
{
var moduleInitializers = from assembly in AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetLoadedAssemblies()
var moduleInitializers = from assembly in AppDomain.CurrentDomain.GetAssemblies()
from attribute in assembly.GetCustomAttributes<ExportAvaloniaModuleAttribute>()
where attribute.ForWindowingSubsystem == ""
|| attribute.ForWindowingSubsystem == WindowingSubsystemName

4
src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs

@ -55,7 +55,7 @@ namespace Avalonia
LoadAssembliesInDirectory();
var windowingSubsystemAttribute = (from assembly in RuntimePlatform.GetLoadedAssemblies()
var windowingSubsystemAttribute = (from assembly in AppDomain.CurrentDomain.GetAssemblies()
from attribute in assembly.GetCustomAttributes<ExportWindowingSubsystemAttribute>()
where attribute.RequiredOS == os && CheckEnvironment(attribute.EnvironmentChecker)
orderby attribute.Priority ascending
@ -65,7 +65,7 @@ namespace Avalonia
throw new InvalidOperationException("No windowing subsystem found. Are you missing assembly references?");
}
var renderingSubsystemAttribute = (from assembly in RuntimePlatform.GetLoadedAssemblies()
var renderingSubsystemAttribute = (from assembly in AppDomain.CurrentDomain.GetAssemblies()
from attribute in assembly.GetCustomAttributes<ExportRenderingSubsystemAttribute>()
where attribute.RequiredOS == os && CheckEnvironment(attribute.EnvironmentChecker)
where attribute.RequiresWindowingSubsystem == null

2
src/Linux/Avalonia.LinuxFramebuffer/Mice.cs

@ -22,7 +22,7 @@ namespace Avalonia.LinuxFramebuffer
_height = height;
}
public void Start() => AvaloniaLocator.Current.GetService<IRuntimePlatform>().PostThreadPoolItem(Worker);
public void Start() => ThreadPool.UnsafeQueueUserWorkItem(_ => Worker(), null);
private void Worker()
{

4
src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaRuntimeTypeProvider.cs

@ -91,9 +91,7 @@ namespace Avalonia.Markup.Xaml.Context
private void ScanNewAssemblies()
{
IEnumerable<Assembly> assemblies = AvaloniaLocator.Current
.GetService<IRuntimePlatform>()
?.GetLoadedAssemblies();
IEnumerable<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies();
if (assemblies != null)
{

2
src/Shared/PlatformSupport/AssetLoader.cs

@ -157,7 +157,7 @@ namespace Avalonia.Shared.PlatformSupport
AssemblyDescriptor rv;
if (!AssemblyNameCache.TryGetValue(name, out rv))
{
var loadedAssemblies = AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetLoadedAssemblies();
var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
var match = loadedAssemblies.FirstOrDefault(a => a.GetName().Name == name);
if (match != null)
{

4
src/Shared/PlatformSupport/StandardRuntimePlatform.cs

@ -13,15 +13,11 @@ namespace Avalonia.Shared.PlatformSupport
{
internal partial class StandardRuntimePlatform : IRuntimePlatform
{
public void PostThreadPoolItem(Action cb) => ThreadPool.UnsafeQueueUserWorkItem(_ => cb(), null);
public Assembly[] GetLoadedAssemblies() => AppDomain.CurrentDomain.GetAssemblies();
public IDisposable StartSystemTimer(TimeSpan interval, Action tick)
{
return new Timer(_ => tick(), null, interval, interval);
}
public string GetStackTrace() => Environment.StackTrace;
public IUnmanagedBlob AllocBlob(int size) => new UnmanagedBlob(this, size);
class UnmanagedBlob : IUnmanagedBlob

Loading…
Cancel
Save