Program.cs 1018 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Avalonia;
  2. using Avalonia.Controls.ApplicationLifetimes;
  3. using Avalonia.ReactiveUI;
  4. using QuestPDF.Previewer;
  5. var applicationPort = GetCommunicationPort();
  6. CommunicationService.Instance.Start(applicationPort);
  7. if(Application.Current?.ApplicationLifetime is ClassicDesktopStyleApplicationLifetime desktop)
  8. {
  9. desktop.MainWindow = new PreviewerWindow()
  10. {
  11. DataContext = new PreviewerWindowViewModel()
  12. };
  13. desktop.MainWindow.Show();
  14. desktop.Start(Array.Empty<string>());
  15. return;
  16. }
  17. AppBuilder
  18. .Configure(() => new PreviewerApp())
  19. .UsePlatformDetect()
  20. .UseReactiveUI()
  21. .StartWithClassicDesktopLifetime(Array.Empty<string>());
  22. static int GetCommunicationPort()
  23. {
  24. const int defaultApplicationPort = 12500;
  25. var arguments = Environment.GetCommandLineArgs();
  26. if (arguments.Length < 2)
  27. return defaultApplicationPort;
  28. return int.TryParse(arguments[1], out var port) ? port : defaultApplicationPort;
  29. }