Program.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Linq;
  3. using Avalonia;
  4. using Avalonia.Controls;
  5. using Avalonia.Logging.Serilog;
  6. using Avalonia.Platform;
  7. using Serilog;
  8. namespace ControlCatalog
  9. {
  10. internal class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. InitializeLogging();
  15. // TODO: Make this work with GTK/Skia/Cairo depending on command-line args
  16. // again.
  17. BuildAvaloniaApp().Start<MainWindow>();
  18. }
  19. /// <summary>
  20. /// This method is needed for IDE previewer infrastructure
  21. /// </summary>
  22. public static AppBuilder BuildAvaloniaApp()
  23. => AppBuilder.Configure<App>().UsePlatformDetect();
  24. // This will be made into a runtime configuration extension soon!
  25. private static void InitializeLogging()
  26. {
  27. #if DEBUG
  28. SerilogLogger.Initialize(new LoggerConfiguration()
  29. .MinimumLevel.Warning()
  30. .WriteTo.Trace(outputTemplate: "{Area}: {Message}")
  31. .CreateLogger());
  32. #endif
  33. }
  34. private static void ConfigureAssetAssembly(AppBuilder builder)
  35. {
  36. AvaloniaLocator.CurrentMutable
  37. .GetService<IAssetLoader>()
  38. .SetDefaultAssembly(typeof(App).Assembly);
  39. }
  40. }
  41. }