diff --git a/src/Avalonia.Base/Threading/Dispatcher.cs b/src/Avalonia.Base/Threading/Dispatcher.cs index 949c11fbe0..ffc013268d 100644 --- a/src/Avalonia.Base/Threading/Dispatcher.cs +++ b/src/Avalonia.Base/Threading/Dispatcher.cs @@ -56,11 +56,7 @@ namespace Avalonia.Threading /// public void MainLoop(CancellationToken cancellationToken) { - var platform = AvaloniaLocator.Current.GetService(); - - if (platform is null) - throw new InvalidOperationException("Unable to locate IPlatformThreadingInterface"); - + var platform = AvaloniaLocator.Current.GetRequiredService(); cancellationToken.Register(() => platform.Signal(DispatcherPriority.Send)); platform.RunLoop(cancellationToken); } diff --git a/src/Avalonia.Visuals/Animation/RenderLoopClock.cs b/src/Avalonia.Visuals/Animation/RenderLoopClock.cs index 942e7eb7c6..de86b5fee2 100644 --- a/src/Avalonia.Visuals/Animation/RenderLoopClock.cs +++ b/src/Avalonia.Visuals/Animation/RenderLoopClock.cs @@ -9,9 +9,7 @@ namespace Avalonia.Animation { protected override void Stop() { - var loop = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IRenderLoop."); - loop.Remove(this); + AvaloniaLocator.Current.GetRequiredService().Remove(this); } bool IRenderLoopTask.NeedsUpdate => HasSubscriptions; diff --git a/src/Avalonia.Visuals/Media/CombinedGeometry.cs b/src/Avalonia.Visuals/Media/CombinedGeometry.cs index b76c496c4e..8f080d05c7 100644 --- a/src/Avalonia.Visuals/Media/CombinedGeometry.cs +++ b/src/Avalonia.Visuals/Media/CombinedGeometry.cs @@ -154,8 +154,7 @@ namespace Avalonia.Media if (g1 is object && g2 is object) { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); return factory.CreateCombinedGeometry(GeometryCombineMode, g1, g2); } else if (GeometryCombineMode == GeometryCombineMode.Intersect) diff --git a/src/Avalonia.Visuals/Media/EllipseGeometry.cs b/src/Avalonia.Visuals/Media/EllipseGeometry.cs index 7f9abaf531..8211855324 100644 --- a/src/Avalonia.Visuals/Media/EllipseGeometry.cs +++ b/src/Avalonia.Visuals/Media/EllipseGeometry.cs @@ -98,8 +98,7 @@ namespace Avalonia.Media /// protected override IGeometryImpl? CreateDefiningGeometry() { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); if (Rect != default) return factory.CreateEllipseGeometry(Rect); diff --git a/src/Avalonia.Visuals/Media/Fonts/FontFamilyLoader.cs b/src/Avalonia.Visuals/Media/Fonts/FontFamilyLoader.cs index 203c8dc221..a54dad7623 100644 --- a/src/Avalonia.Visuals/Media/Fonts/FontFamilyLoader.cs +++ b/src/Avalonia.Visuals/Media/Fonts/FontFamilyLoader.cs @@ -32,9 +32,7 @@ namespace Avalonia.Media.Fonts /// private static IEnumerable GetFontAssetsBySource(FontFamilyKey fontFamilyKey) { - var assetLoader = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IAssetLoader."); - + var assetLoader = AvaloniaLocator.Current.GetRequiredService(); var availableAssets = assetLoader.GetAssets(fontFamilyKey.Source, fontFamilyKey.BaseUri); var matchingAssets = @@ -51,8 +49,7 @@ namespace Avalonia.Media.Fonts /// private static IEnumerable GetFontAssetsByExpression(FontFamilyKey fontFamilyKey) { - var assetLoader = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IAssetLoader."); + var assetLoader = AvaloniaLocator.Current.GetRequiredService(); var fileName = GetFileName(fontFamilyKey, out var fileExtension, out var location); diff --git a/src/Avalonia.Visuals/Media/FormattedText.cs b/src/Avalonia.Visuals/Media/FormattedText.cs index 499761d96c..f6129eaf6a 100644 --- a/src/Avalonia.Visuals/Media/FormattedText.cs +++ b/src/Avalonia.Visuals/Media/FormattedText.cs @@ -24,8 +24,7 @@ namespace Avalonia.Media /// public FormattedText() { - _platform = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + _platform = AvaloniaLocator.Current.GetRequiredService(); } /// diff --git a/src/Avalonia.Visuals/Media/GeometryGroup.cs b/src/Avalonia.Visuals/Media/GeometryGroup.cs index 01d4923456..c6b666b2eb 100644 --- a/src/Avalonia.Visuals/Media/GeometryGroup.cs +++ b/src/Avalonia.Visuals/Media/GeometryGroup.cs @@ -61,8 +61,7 @@ namespace Avalonia.Media { if (_children?.Count > 0) { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); return factory.CreateGeometryGroup(FillRule, _children); } diff --git a/src/Avalonia.Visuals/Media/GlyphRun.cs b/src/Avalonia.Visuals/Media/GlyphRun.cs index e15a19306a..53b35fb31b 100644 --- a/src/Avalonia.Visuals/Media/GlyphRun.cs +++ b/src/Avalonia.Visuals/Media/GlyphRun.cs @@ -627,8 +627,7 @@ namespace Avalonia.Media throw new InvalidOperationException(); } - var platformRenderInterface = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface"); + var platformRenderInterface = AvaloniaLocator.Current.GetRequiredService(); _glyphRunImpl = platformRenderInterface.CreateGlyphRun(this); } diff --git a/src/Avalonia.Visuals/Media/Imaging/Bitmap.cs b/src/Avalonia.Visuals/Media/Imaging/Bitmap.cs index 020940d9c6..647ce13528 100644 --- a/src/Avalonia.Visuals/Media/Imaging/Bitmap.cs +++ b/src/Avalonia.Visuals/Media/Imaging/Bitmap.cs @@ -169,8 +169,7 @@ namespace Avalonia.Media.Imaging private static IPlatformRenderInterface GetFactory() { - return AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + return AvaloniaLocator.Current.GetRequiredService(); } } } diff --git a/src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs b/src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs index fe8890b3ba..94a5abd918 100644 --- a/src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs +++ b/src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs @@ -54,8 +54,7 @@ namespace Avalonia.Media.Imaging /// The platform-specific implementation. private static IRenderTargetBitmapImpl CreateImpl(PixelSize size, Vector dpi) { - IPlatformRenderInterface factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + IPlatformRenderInterface factory = AvaloniaLocator.Current.GetRequiredService(); return factory.CreateRenderTargetBitmap(size, dpi); } diff --git a/src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs b/src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs index 4dfb22440d..40a24db338 100644 --- a/src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs +++ b/src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs @@ -93,8 +93,7 @@ namespace Avalonia.Media.Imaging private static IPlatformRenderInterface GetFactory() { - return AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + return AvaloniaLocator.Current.GetRequiredService(); } } } diff --git a/src/Avalonia.Visuals/Media/LineGeometry.cs b/src/Avalonia.Visuals/Media/LineGeometry.cs index b01a223aca..6ac92ea33b 100644 --- a/src/Avalonia.Visuals/Media/LineGeometry.cs +++ b/src/Avalonia.Visuals/Media/LineGeometry.cs @@ -70,8 +70,7 @@ namespace Avalonia.Media /// protected override IGeometryImpl? CreateDefiningGeometry() { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); return factory.CreateLineGeometry(StartPoint, EndPoint); } diff --git a/src/Avalonia.Visuals/Media/PathGeometry.cs b/src/Avalonia.Visuals/Media/PathGeometry.cs index 0b6a157280..2c8a51c541 100644 --- a/src/Avalonia.Visuals/Media/PathGeometry.cs +++ b/src/Avalonia.Visuals/Media/PathGeometry.cs @@ -88,8 +88,7 @@ namespace Avalonia.Media if (figures is null) return null; - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); var geometry = factory.CreateStreamGeometry(); using (var ctx = new StreamGeometryContext(geometry.Open())) diff --git a/src/Avalonia.Visuals/Media/PolylineGeometry.cs b/src/Avalonia.Visuals/Media/PolylineGeometry.cs index 8e040a6043..dd3c298b5b 100644 --- a/src/Avalonia.Visuals/Media/PolylineGeometry.cs +++ b/src/Avalonia.Visuals/Media/PolylineGeometry.cs @@ -76,8 +76,7 @@ namespace Avalonia.Media protected override IGeometryImpl? CreateDefiningGeometry() { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); var geometry = factory.CreateStreamGeometry(); using (var context = geometry.Open()) diff --git a/src/Avalonia.Visuals/Media/RectangleGeometry.cs b/src/Avalonia.Visuals/Media/RectangleGeometry.cs index 97b4869d71..0bf9eb5664 100644 --- a/src/Avalonia.Visuals/Media/RectangleGeometry.cs +++ b/src/Avalonia.Visuals/Media/RectangleGeometry.cs @@ -49,8 +49,7 @@ namespace Avalonia.Media protected override IGeometryImpl? CreateDefiningGeometry() { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); return factory.CreateRectangleGeometry(Rect); } diff --git a/src/Avalonia.Visuals/Media/StreamGeometry.cs b/src/Avalonia.Visuals/Media/StreamGeometry.cs index b034ff7823..fb79488e0f 100644 --- a/src/Avalonia.Visuals/Media/StreamGeometry.cs +++ b/src/Avalonia.Visuals/Media/StreamGeometry.cs @@ -66,8 +66,7 @@ namespace Avalonia.Media { if (_impl == null) { - var factory = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface."); + var factory = AvaloniaLocator.Current.GetRequiredService(); _impl = factory.CreateStreamGeometry(); } diff --git a/src/Avalonia.Visuals/Rendering/DefaultRenderTimer.cs b/src/Avalonia.Visuals/Rendering/DefaultRenderTimer.cs index 43e00f3215..82d3892975 100644 --- a/src/Avalonia.Visuals/Rendering/DefaultRenderTimer.cs +++ b/src/Avalonia.Visuals/Rendering/DefaultRenderTimer.cs @@ -77,8 +77,7 @@ namespace Avalonia.Rendering /// protected virtual IDisposable StartCore(Action tick) { - _runtime ??= AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IRuntimePlatform."); + _runtime ??= AvaloniaLocator.Current.GetRequiredService(); return _runtime.StartSystemTimer( TimeSpan.FromSeconds(1.0 / FramesPerSecond), diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index 8e5cac1400..60f035cd7e 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -94,10 +94,8 @@ namespace Avalonia.X11 { var size = Marshal.SizeOf() + (bitmap.PixelSize.Width * bitmap.PixelSize.Height * 4); - var runtimePlatform = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IRuntimePlatform"); - var platformRenderInterface = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IPlatformRenderInterface"); + var runtimePlatform = AvaloniaLocator.Current.GetRequiredService(); + var platformRenderInterface = AvaloniaLocator.Current.GetRequiredService(); _pixelSize = bitmap.PixelSize; _blob = runtimePlatform.AllocBlob(size); diff --git a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs index a971c8e997..3e9849d4dc 100644 --- a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs +++ b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs @@ -106,8 +106,7 @@ namespace Avalonia.Web.Blazor public IRenderer CreateRenderer(IRenderRoot root) { - var loop = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IRenderLoop."); + var loop = AvaloniaLocator.Current.GetRequiredService(); return new DeferredRenderer(root, loop); } diff --git a/src/Web/Avalonia.Web.Blazor/WindowingPlatform.cs b/src/Web/Avalonia.Web.Blazor/WindowingPlatform.cs index 4804016ab2..f30a36b8c9 100644 --- a/src/Web/Avalonia.Web.Blazor/WindowingPlatform.cs +++ b/src/Web/Avalonia.Web.Blazor/WindowingPlatform.cs @@ -98,8 +98,7 @@ namespace Avalonia.Web.Blazor private static IRuntimePlatform GetRuntimePlatform() { - return AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IRuntimePlatform."); + return AvaloniaLocator.Current.GetRequiredService(); } } } diff --git a/src/Windows/Avalonia.Win32/FramebufferManager.cs b/src/Windows/Avalonia.Win32/FramebufferManager.cs index 119edcebbf..7f4b1c976d 100644 --- a/src/Windows/Avalonia.Win32/FramebufferManager.cs +++ b/src/Windows/Avalonia.Win32/FramebufferManager.cs @@ -107,8 +107,7 @@ namespace Avalonia.Win32 private static FramebufferData AllocateFramebufferData(int width, int height) { - var service = AvaloniaLocator.Current.GetService() ?? - throw new InvalidOperationException("Unable to locate IRuntimePlatform."); + var service = AvaloniaLocator.Current.GetRequiredService(); var bitmapBlob = service.AllocBlob(width * height * _bytesPerPixel); return new FramebufferData(bitmapBlob, width, height);