Browse Source

leverage GetRequiredService

Simon Cropp 2 years ago
parent
commit
fb37ab1e77
32 changed files with 42 additions and 72 deletions
  1. 1 1
      samples/ControlCatalog.Desktop/Program.cs
  2. 1 1
      samples/ControlCatalog/Pages/TabControlPage.xaml.cs
  3. 1 1
      samples/ControlCatalog/ViewModels/CursorPageViewModel.cs
  4. 1 1
      samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs
  5. 1 2
      src/Avalonia.Base/Input/Cursor.cs
  6. 1 4
      src/Avalonia.Base/Media/FontManager.cs
  7. 1 4
      src/Avalonia.Base/Media/TextFormatting/TextShaper.cs
  8. 1 2
      src/Avalonia.Base/Rendering/RenderLoop.cs
  9. 1 7
      src/Avalonia.Base/Threading/DispatcherTimer.cs
  10. 3 10
      src/Avalonia.Controls/Platform/PlatformManager.cs
  11. 1 4
      src/Avalonia.DesignerSupport/DesignWindowLoader.cs
  12. 1 1
      src/Avalonia.Dialogs/Internal/ManagedFileChooserViewModel.cs
  13. 1 1
      src/Avalonia.OpenGL/Egl/EglInterface.cs
  14. 1 1
      src/Avalonia.X11/X11Framebuffer.cs
  15. 1 1
      src/Avalonia.X11/X11Platform.cs
  16. 1 1
      src/Markup/Avalonia.Markup.Xaml/Converters/BitmapTypeConverter.cs
  17. 1 1
      src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs
  18. 1 1
      src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs
  19. 3 3
      src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
  20. 1 1
      src/Windows/Avalonia.Direct2D1/Media/DWriteResourceFontLoader.cs
  21. 1 1
      src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
  22. 1 1
      src/Windows/Avalonia.Win32.Interop/Wpf/Direct2DImageSurface.cs
  23. 1 1
      tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
  24. 1 1
      tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
  25. 1 1
      tests/Avalonia.Controls.UnitTests/FlyoutTests.cs
  26. 1 1
      tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
  27. 1 1
      tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
  28. 2 2
      tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
  29. 4 5
      tests/Avalonia.Controls.UnitTests/TreeViewTests.cs
  30. 3 3
      tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs
  31. 1 1
      tests/Avalonia.RenderTests/TestBase.cs
  32. 1 6
      tests/Avalonia.UnitTests/HarfBuzzFontManagerImpl.cs

+ 1 - 1
samples/ControlCatalog.Desktop/Program.cs

@@ -23,7 +23,7 @@ namespace ControlCatalog
         private static void ConfigureAssetAssembly(AppBuilder builder)
         {
             AvaloniaLocator.CurrentMutable
-                .GetService<IAssetLoader>()
+                .GetRequiredService<IAssetLoader>()
                 .SetDefaultAssembly(typeof(App).Assembly);
         }
     }

+ 1 - 1
samples/ControlCatalog/Pages/TabControlPage.xaml.cs

@@ -51,7 +51,7 @@ namespace ControlCatalog.Pages
 
         private static IBitmap LoadBitmap(string uri)
         {
-            var assets = AvaloniaLocator.Current!.GetService<IAssetLoader>()!;
+            var assets = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
             return new Bitmap(assets.Open(new Uri(uri)));
         }
     }

+ 1 - 1
samples/ControlCatalog/ViewModels/CursorPageViewModel.cs

@@ -18,7 +18,7 @@ namespace ControlCatalog.ViewModels
                 .Select(x => new StandardCursorModel(x))
                 .ToList();
 
-            var loader = AvaloniaLocator.Current!.GetService<IAssetLoader>()!;
+            var loader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>()!;
             var s = loader.Open(new Uri("avares://ControlCatalog/Assets/avalonia-32.png"));
             var bitmap = new Bitmap(s);
             CustomCursor = new Cursor(bitmap, new PixelPoint(16, 16));

+ 1 - 1
samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs

@@ -19,7 +19,7 @@ namespace ControlCatalog.ViewModels
     {
         public TransitioningContentControlPageViewModel()
         {
-            var assetLoader = AvaloniaLocator.Current?.GetService<IAssetLoader>()!;
+            var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>()!;
 
             var images = new string[] 
             { 

+ 1 - 2
src/Avalonia.Base/Input/Cursor.cs

@@ -71,8 +71,7 @@ namespace Avalonia.Input
 
         private static ICursorFactory GetCursorFactory()
         {
-            return AvaloniaLocator.Current.GetService<ICursorFactory>() ??
-                throw new Exception("Could not create Cursor: ICursorFactory not registered.");
+            return AvaloniaLocator.Current.GetRequiredService<ICursorFactory>();
         }
     }
 }

+ 1 - 4
src/Avalonia.Base/Media/FontManager.cs

@@ -47,10 +47,7 @@ namespace Avalonia.Media
                     return current;
                 }
 
-                var fontManagerImpl = AvaloniaLocator.Current.GetService<IFontManagerImpl>();
-
-                if (fontManagerImpl == null)
-                    throw new InvalidOperationException("No font manager implementation was registered.");
+                var fontManagerImpl = AvaloniaLocator.Current.GetRequiredService<IFontManagerImpl>();
 
                 current = new FontManager(fontManagerImpl);
 

+ 1 - 4
src/Avalonia.Base/Media/TextFormatting/TextShaper.cs

@@ -29,10 +29,7 @@ namespace Avalonia.Media.TextFormatting
                     return current;
                 }
 
-                var textShaperImpl = AvaloniaLocator.Current.GetService<ITextShaperImpl>();
-
-                if (textShaperImpl == null)
-                    throw new InvalidOperationException("No text shaper implementation was registered.");
+                var textShaperImpl = AvaloniaLocator.Current.GetRequiredService<ITextShaperImpl>();
 
                 current = new TextShaper(textShaperImpl);
 

+ 1 - 2
src/Avalonia.Base/Rendering/RenderLoop.cs

@@ -50,8 +50,7 @@ namespace Avalonia.Rendering
         {
             get
             {
-                return _timer ??= AvaloniaLocator.Current.GetService<IRenderTimer>() ??
-                    throw new InvalidOperationException("Cannot locate IRenderTimer.");
+                return _timer ??= AvaloniaLocator.Current.GetRequiredService<IRenderTimer>();
             }
         }
 

+ 1 - 7
src/Avalonia.Base/Threading/DispatcherTimer.cs

@@ -176,13 +176,7 @@ namespace Avalonia.Threading
         {
             if (!IsEnabled)
             {
-                var threading = AvaloniaLocator.Current.GetService<IPlatformThreadingInterface>();
-
-                if (threading == null)
-                {
-                    throw new Exception("Could not start timer: IPlatformThreadingInterface is not registered.");
-                }
-
+                var threading = AvaloniaLocator.Current.GetRequiredService<IPlatformThreadingInterface>();
                 _timer = threading.StartTimer(_priority, Interval, InternalTick);
             }
         }

+ 3 - 10
src/Avalonia.Controls/Platform/PlatformManager.cs

@@ -21,26 +21,19 @@ namespace Avalonia.Controls.Platform
         }
 
         public static ITrayIconImpl? CreateTrayIcon() =>
-            s_designerMode ? null : AvaloniaLocator.Current.GetService<IWindowingPlatform>()?.CreateTrayIcon();
+            s_designerMode ? null : AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>().CreateTrayIcon();
 
 
         public static IWindowImpl CreateWindow()
         {
-            var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
-            
-            if (platform == null)
-            {
-                throw new Exception("Could not CreateWindow(): IWindowingPlatform is not registered.");
-            }
+            var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
 
             return s_designerMode ? platform.CreateEmbeddableWindow() : platform.CreateWindow();
         }
 
         public static IWindowImpl CreateEmbeddableWindow()
         {
-            var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
-            if (platform == null)
-                throw new Exception("Could not CreateEmbeddableWindow(): IWindowingPlatform is not registered.");
+            var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
             return platform.CreateEmbeddableWindow();
         }
     }

+ 1 - 4
src/Avalonia.DesignerSupport/DesignWindowLoader.cs

@@ -18,12 +18,9 @@ namespace Avalonia.DesignerSupport
             Control control;
             using (PlatformManager.DesignerMode())
             {
-                var loader = AvaloniaLocator.Current.GetService<AvaloniaXamlLoader.IRuntimeXamlLoader>();
+                var loader = AvaloniaLocator.Current.GetRequiredService<AvaloniaXamlLoader.IRuntimeXamlLoader>();
                 var stream = new MemoryStream(Encoding.UTF8.GetBytes(xaml));
 
-                if (loader == null)
-                    throw new XamlLoadException("Runtime XAML loader is not registered");
-                
                 Uri baseUri = null;
                 if (assemblyPath != null)
                 {

+ 1 - 1
src/Avalonia.Dialogs/Internal/ManagedFileChooserViewModel.cs

@@ -117,7 +117,7 @@ namespace Avalonia.Dialogs.Internal
                                               ?? new ManagedFileChooserSources();
 
             var sub1 = AvaloniaLocator.Current
-                                      .GetService<IMountedVolumeInfoProvider>()
+                                      .GetRequiredService<IMountedVolumeInfoProvider>()
                                       .Listen(ManagedFileChooserSources.MountedVolumes);
 
             var sub2 = Observable.FromEventPattern(ManagedFileChooserSources.MountedVolumes,

+ 1 - 1
src/Avalonia.OpenGL/Egl/EglInterface.cs

@@ -35,7 +35,7 @@ namespace Avalonia.OpenGL.Egl
 
         static Func<string, IntPtr> Load(string library)
         {
-            var dyn = AvaloniaLocator.Current.GetService<IDynamicLibraryLoader>();
+            var dyn = AvaloniaLocator.Current.GetRequiredService<IDynamicLibraryLoader>();
             var lib = dyn.LoadLibrary(library);
             return (s) => dyn.GetProcAddress(lib, s, true);
         }

+ 1 - 1
src/Avalonia.X11/X11Framebuffer.cs

@@ -25,7 +25,7 @@ namespace Avalonia.X11
             RowBytes = width * 4;
             Dpi = new Vector(96, 96) * factor;
             Format = PixelFormat.Bgra8888;
-            _blob = AvaloniaLocator.Current.GetService<IRuntimePlatform>().AllocBlob(RowBytes * height);
+            _blob = AvaloniaLocator.Current.GetRequiredService<IRuntimePlatform>().AllocBlob(RowBytes * height);
             Address = _blob.Address;
         }
         

+ 1 - 1
src/Avalonia.X11/X11Platform.cs

@@ -105,7 +105,7 @@ namespace Avalonia.X11
             var gl = AvaloniaLocator.Current.GetService<IPlatformGraphics>();
             
             if (options.UseCompositor)
-                Compositor = new Compositor(AvaloniaLocator.Current.GetService<IRenderLoop>()!, gl);
+                Compositor = new Compositor(AvaloniaLocator.Current.GetRequiredService<IRenderLoop>(), gl);
             else
                 RenderInterface = new(gl);
 

+ 1 - 1
src/Markup/Avalonia.Markup.Xaml/Converters/BitmapTypeConverter.cs

@@ -24,7 +24,7 @@ namespace Avalonia.Markup.Xaml.Converters
             if(uri.IsAbsoluteUri && uri.IsFile)
                 return new Bitmap(uri.LocalPath);
 
-            var assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
+            var assets = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
             return new Bitmap(assets.Open(uri, context.GetContextBaseUri()));
         }
     }

+ 1 - 1
src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs

@@ -40,7 +40,7 @@ namespace Avalonia.Markup.Xaml.Converters
             
             if(uri.IsAbsoluteUri && uri.IsFile)
                 return new WindowIcon(uri.LocalPath);
-            var assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
+            var assets = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
             return new WindowIcon(assets.Open(uri, context.GetContextBaseUri()));
         }
     }

+ 1 - 1
src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs

@@ -37,7 +37,7 @@ namespace Avalonia.Skia
 
             var typeFaceCollection = new SKTypefaceCollection();
 
-            var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
+            var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
 
             foreach (var asset in fontAssets)
             {

+ 3 - 3
src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs

@@ -96,9 +96,9 @@ namespace Avalonia.Skia
 
             SKColorType colorType = format.ToSkColorType();
             SKAlphaType alphaType = alphaFormat.ToSkAlphaType();
-            
-            var runtimePlatform = AvaloniaLocator.Current?.GetService<IRuntimePlatform>();
-            
+
+            var runtimePlatform = AvaloniaLocator.Current.GetRequiredService<IRuntimePlatform>();
+
             if (runtimePlatform != null)
             {
                 _bitmap = new SKBitmap();

+ 1 - 1
src/Windows/Avalonia.Direct2D1/Media/DWriteResourceFontLoader.cs

@@ -22,7 +22,7 @@ namespace Avalonia.Direct2D1.Media
         {
             var factory1 = factory;
 
-            var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
+            var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
 
             foreach (var asset in fontAssets)
             {

+ 1 - 1
src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs

@@ -409,7 +409,7 @@ namespace Avalonia.Direct2D1.Media
             }
             else
             {
-                var platform = AvaloniaLocator.Current.GetService<IPlatformRenderInterface>();
+                var platform = AvaloniaLocator.Current.GetRequiredService<IPlatformRenderInterface>();
                 var dpi = new Vector(_deviceContext.DotsPerInch.Width, _deviceContext.DotsPerInch.Height);
                 var pixelSize = PixelSize.FromSizeWithDpi(size, dpi);
                 return (IDrawingContextLayerImpl)platform.CreateRenderTargetBitmap(pixelSize, dpi);

+ 1 - 1
src/Windows/Avalonia.Win32.Interop/Wpf/Direct2DImageSurface.cs

@@ -127,7 +127,7 @@ namespace Avalonia.Win32.Interop.Wpf
                 DeviceWindowHandle = GetDesktopWindow(),
                 PresentationInterval = PresentInterval.Default
             };
-            s_dxDevice = s_dxDevice ?? AvaloniaLocator.Current.GetService<SharpDX.DXGI.Device>()
+            s_dxDevice = s_dxDevice ?? AvaloniaLocator.Current.GetRequiredService<SharpDX.DXGI.Device>()
                              .QueryInterface<SharpDX.Direct3D11.Device>();
             s_d3DDevice = new DeviceEx(s_d3DContext, 0, DeviceType.Hardware, IntPtr.Zero, CreateFlags.HardwareVertexProcessing | CreateFlags.Multithreaded | CreateFlags.FpuPreserve, presentparams);
 

+ 1 - 1
tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs

@@ -97,7 +97,7 @@ namespace Avalonia.Base.UnitTests.Media.Fonts
         {
             using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
             {
-                var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
+                var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
 
                 var fontFamily = new FontFamily("resm:Avalonia.Base.UnitTests.Assets?assembly=Avalonia.Base.UnitTests#Noto Mono");
 

+ 1 - 1
tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

@@ -596,7 +596,7 @@ namespace Avalonia.Controls.UnitTests
         private static Window PreparedWindow(object content = null)
         {
             var renderer = new Mock<IRenderer>();
-            var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
+            var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
             var windowImpl = Mock.Get(platform.CreateWindow());
             windowImpl.Setup(x => x.CreateRenderer(It.IsAny<IRenderRoot>())).Returns(renderer.Object);
 

+ 1 - 1
tests/Avalonia.Controls.UnitTests/FlyoutTests.cs

@@ -570,7 +570,7 @@ namespace Avalonia.Controls.UnitTests
         private static Window PreparedWindow(object content = null)
         {
             var renderer = new Mock<IRenderer>();
-            var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
+            var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
             var windowImpl = Mock.Get(platform.CreateWindow());
             windowImpl.Setup(x => x.CreateRenderer(It.IsAny<IRenderRoot>())).Returns(renderer.Object);
 

+ 1 - 1
tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs

@@ -827,7 +827,7 @@ namespace Avalonia.Controls.UnitTests
                 {
                     AvaloniaLocator.CurrentMutable.Bind<IClipboard>().ToSingleton<ClipboardStub>();
 
-                    var clipboard = AvaloniaLocator.CurrentMutable.GetService<IClipboard>();
+                    var clipboard = AvaloniaLocator.CurrentMutable.GetRequiredService<IClipboard>();
                     clipboard.SetTextAsync(textInput).GetAwaiter().GetResult();
 
                     RaiseKeyEvent(target, Key.V, KeyModifiers.Control);

+ 1 - 1
tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs

@@ -564,7 +564,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
             using (CreateServices())
             {
                 var renderer = new Mock<IRenderer>();
-                var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
+                var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
                 var windowImpl = Mock.Get(platform.CreateWindow());
                 windowImpl.Setup(x => x.CreateRenderer(It.IsAny<IRenderRoot>())).Returns(renderer.Object);
 

+ 2 - 2
tests/Avalonia.Controls.UnitTests/TextBoxTests.cs

@@ -767,7 +767,7 @@ namespace Avalonia.Controls.UnitTests
                 {
                     AvaloniaLocator.CurrentMutable.Bind<IClipboard>().ToSingleton<ClipboardStub>();
                     
-                    var clipboard = AvaloniaLocator.CurrentMutable.GetService<IClipboard>();
+                    var clipboard = AvaloniaLocator.CurrentMutable.GetRequiredService<IClipboard>();
                     clipboard.SetTextAsync(textInput).GetAwaiter().GetResult();
 
                     RaiseKeyEvent(target, Key.V, KeyModifiers.Control);
@@ -876,7 +876,7 @@ namespace Avalonia.Controls.UnitTests
 
                 AvaloniaLocator.CurrentMutable.Bind<IClipboard>().ToSingleton<ClipboardStub>();
 
-                var clipboard = AvaloniaLocator.CurrentMutable.GetService<IClipboard>();
+                var clipboard = AvaloniaLocator.CurrentMutable.GetRequiredService<IClipboard>();
                 clipboard.SetTextAsync(Environment.NewLine).GetAwaiter().GetResult();
 
                 RaiseKeyEvent(target, Key.V, KeyModifiers.Control);

+ 4 - 5
tests/Avalonia.Controls.UnitTests/TreeViewTests.cs

@@ -1248,7 +1248,7 @@ namespace Avalonia.Controls.UnitTests
             using (Application())
             {
                 var focus = FocusManager.Instance;
-                var navigation = AvaloniaLocator.Current.GetService<IKeyboardNavigationHandler>();
+                var navigation = AvaloniaLocator.Current.GetRequiredService<IKeyboardNavigationHandler>();
                 var data = CreateTestTreeData();
 
                 var target = new TreeView
@@ -1293,7 +1293,6 @@ namespace Avalonia.Controls.UnitTests
             using (Application())
             {
                 var focus = FocusManager.Instance;
-                var navigation = AvaloniaLocator.Current.GetService<IKeyboardNavigationHandler>();
                 var data = CreateTestTreeData();
 
                 var selectedNode = new Node { Value = "Out of Tree Selected Item" };
@@ -1353,7 +1352,7 @@ namespace Avalonia.Controls.UnitTests
 
                 var rootNode = tree[0];
 
-                var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
+                var keymap = AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>();
                 var selectAllGesture = keymap.SelectAll.First();
 
                 var keyEvent = new KeyEventArgs
@@ -1400,7 +1399,7 @@ namespace Avalonia.Controls.UnitTests
                 ClickContainer(fromContainer, KeyModifiers.None);
                 ClickContainer(toContainer, KeyModifiers.Shift);
 
-                var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
+                var keymap = AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>();
                 var selectAllGesture = keymap.SelectAll.First();
 
                 var keyEvent = new KeyEventArgs
@@ -1447,7 +1446,7 @@ namespace Avalonia.Controls.UnitTests
                 ClickContainer(fromContainer, KeyModifiers.None);
                 ClickContainer(toContainer, KeyModifiers.Shift);
 
-                var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
+                var keymap = AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>();
                 var selectAllGesture = keymap.SelectAll.First();
 
                 var keyEvent = new KeyEventArgs

+ 3 - 3
tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs

@@ -47,7 +47,7 @@ namespace Avalonia.ReactiveUI.UnitTests
             using (var lifetime = new ClassicDesktopStyleApplicationLifetime())
             {
                 var isLaunchingReceived = false;
-                var application = AvaloniaLocator.Current.GetService<Application>();
+                var application = AvaloniaLocator.Current.GetRequiredService<Application>();
                 application.ApplicationLifetime = lifetime;
 
                 // Initialize ReactiveUI Suspension as in real-world scenario.
@@ -65,7 +65,7 @@ namespace Avalonia.ReactiveUI.UnitTests
             using (UnitTestApplication.Start(TestServices.MockWindowingPlatform))
             using (var lifetime = new ExoticApplicationLifetimeWithoutLifecycleEvents()) 
             {
-                var application = AvaloniaLocator.Current.GetService<Application>();
+                var application = AvaloniaLocator.Current.GetRequiredService<Application>();
                 application.ApplicationLifetime = lifetime;
                 Assert.Throws<NotSupportedException>(() => new AutoSuspendHelper(application.ApplicationLifetime));
             }
@@ -88,7 +88,7 @@ namespace Avalonia.ReactiveUI.UnitTests
             using (var lifetime = new ClassicDesktopStyleApplicationLifetime()) 
             {
                 var shouldPersistReceived = false;
-                var application = AvaloniaLocator.Current.GetService<Application>();
+                var application = AvaloniaLocator.Current.GetRequiredService<Application>();
                 application.ApplicationLifetime = lifetime;
 
                 // Initialize ReactiveUI Suspension as in real-world scenario.

+ 1 - 1
tests/Avalonia.RenderTests/TestBase.cs

@@ -91,7 +91,7 @@ namespace Avalonia.Direct2D1.RenderTests
             var immediatePath = Path.Combine(OutputPath, testName + ".immediate.out.png");
             var deferredPath = Path.Combine(OutputPath, testName + ".deferred.out.png");
             var compositedPath = Path.Combine(OutputPath, testName + ".composited.out.png");
-            var factory = AvaloniaLocator.Current.GetService<IPlatformRenderInterface>();
+            var factory = AvaloniaLocator.Current.GetRequiredService<IPlatformRenderInterface>();
             var pixelSize = new PixelSize((int)target.Width, (int)target.Height);
             var size = new Size(target.Width, target.Height);
             var dpiVector = new Vector(dpi, dpi);

+ 1 - 6
tests/Avalonia.UnitTests/HarfBuzzFontManagerImpl.cs

@@ -76,13 +76,8 @@ namespace Avalonia.UnitTests
 
             var asset = fontAssets.First();
             
-            var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
+            var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
 
-            if (assetLoader == null)
-            {
-                throw new NotSupportedException("IAssetLoader is not registered.");
-            }
-            
             var stream = assetLoader.Open(asset);
             
             return new HarfBuzzGlyphTypefaceImpl(stream);