diff --git a/samples/BindingTest/App.xaml.cs b/samples/BindingTest/App.xaml.cs index 07fa406c1c..fd457f7ba9 100644 --- a/samples/BindingTest/App.xaml.cs +++ b/samples/BindingTest/App.xaml.cs @@ -9,11 +9,6 @@ namespace BindingTest { public class App : Application { - public App() - { - RegisterServices(); - } - public override void Initialize() { AvaloniaXamlLoader.Load(this); diff --git a/samples/ControlCatalog/App.xaml.cs b/samples/ControlCatalog/App.xaml.cs index fe2ccdb218..d862749132 100644 --- a/samples/ControlCatalog/App.xaml.cs +++ b/samples/ControlCatalog/App.xaml.cs @@ -5,11 +5,6 @@ namespace ControlCatalog { public class App : Application { - public App() - { - RegisterServices(); - } - public override void Initialize() { AvaloniaXamlLoader.Load(this); diff --git a/samples/TestApplicationShared/App.cs b/samples/TestApplicationShared/App.cs index b7e80bb41e..757ecc72bb 100644 --- a/samples/TestApplicationShared/App.cs +++ b/samples/TestApplicationShared/App.cs @@ -17,15 +17,6 @@ namespace TestApplication { public class App : Application { - public App() - { - // TODO: I believe this has to happen before we select sub systems. Can we - // move this safely into Application itself? Is there anything in here - // that is platform specific?? - // - RegisterServices(); - } - public void Run() { Styles.Add(new DefaultTheme()); diff --git a/samples/XamlTestApplicationPcl/XamlTestApp.cs b/samples/XamlTestApplicationPcl/XamlTestApp.cs index 7518346e91..dbdf8f2ad2 100644 --- a/samples/XamlTestApplicationPcl/XamlTestApp.cs +++ b/samples/XamlTestApplicationPcl/XamlTestApp.cs @@ -6,11 +6,6 @@ namespace XamlTestApplication { public class XamlTestApp : Application { - public XamlTestApp() - { - RegisterServices(); - } - public override void Initialize() { AvaloniaXamlLoader.Load(this); diff --git a/src/Avalonia.Controls/AppBuilder.cs b/src/Avalonia.Controls/AppBuilder.cs index 428b823dac..df50a105be 100644 --- a/src/Avalonia.Controls/AppBuilder.cs +++ b/src/Avalonia.Controls/AppBuilder.cs @@ -83,7 +83,7 @@ namespace Avalonia.Controls { throw new InvalidOperationException("No rendering system configured."); } - + Instance.RegisterServices(); WindowingSubsystem(); RenderingSubsystem(); Instance.Initialize(); diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs index aedf3370a3..f73ead5576 100644 --- a/src/Avalonia.Controls/Application.cs +++ b/src/Avalonia.Controls/Application.cs @@ -171,7 +171,7 @@ namespace Avalonia /// /// Register's the services needed by Avalonia. /// - protected virtual void RegisterServices() + public virtual void RegisterServices() { AvaloniaSynchronizationContext.InstallIfNeeded(); FocusManager = new FocusManager(); diff --git a/tests/Avalonia.DesignerSupport.TestApp/App.xaml.cs b/tests/Avalonia.DesignerSupport.TestApp/App.xaml.cs index f9407a4708..653a51232b 100644 --- a/tests/Avalonia.DesignerSupport.TestApp/App.xaml.cs +++ b/tests/Avalonia.DesignerSupport.TestApp/App.xaml.cs @@ -9,12 +9,6 @@ namespace Avalonia.DesignerSupport.TestApp { public class App : Application { - - public App() - { - RegisterServices(); - } - public override void Initialize() { AvaloniaXamlLoader.Load(this); diff --git a/tests/Avalonia.UnitTests/UnitTestApplication.cs b/tests/Avalonia.UnitTests/UnitTestApplication.cs index 01151b4952..83c8a2cebc 100644 --- a/tests/Avalonia.UnitTests/UnitTestApplication.cs +++ b/tests/Avalonia.UnitTests/UnitTestApplication.cs @@ -12,22 +12,17 @@ namespace Avalonia.UnitTests { public class UnitTestApplication : Application { + private readonly TestServices _services; + public UnitTestApplication(TestServices services) { - Services = services ?? new TestServices(); + _services = services ?? new TestServices(); RegisterServices(); - - var styles = Services.Theme?.Invoke(); - - if (styles != null) - { - Styles.AddRange(styles); - } } public static new UnitTestApplication Current => (UnitTestApplication)Application.Current; - public TestServices Services { get; } + public TestServices Services => _services; public static IDisposable Start(TestServices services = null) { @@ -37,7 +32,7 @@ namespace Avalonia.UnitTests return scope; } - protected override void RegisterServices() + public override void RegisterServices() { AvaloniaLocator.CurrentMutable .Bind().ToConstant(Services.AssetLoader) @@ -53,6 +48,12 @@ namespace Avalonia.UnitTests .Bind().ToConstant(Services.Styler) .Bind().ToConstant(Services.WindowingPlatform) .Bind().ToConstant(this); + var styles = Services.Theme?.Invoke(); + + if (styles != null) + { + Styles.AddRange(styles); + } } } }