Как показать OpenFileDialog в RoslynPad

Я использую следующий код, чтобы показать OpenFileDialogиспользуя RoslynPad, он выполнил и запустился, но диалоговое окно не появилось, поэтому фрагмент продолжает работать вечно:

#r "framework:Microsoft.WindowsDesktop.App"

using System.Windows.Forms;

var fd = new OpenFileDialog
{
    Filter = "Solution files (*.sln)|*.sln"
};

if (fd.ShowDialog() == DialogResult.OK)
    Console.WriteLine(fd.FileName);

Как правильно сделать OpenFileDialog работать с RoslynPad?

Окружающая обстановка:

  • ОС: Windows 10 Pro, 64-разрядная (2004 г.)
  • RoslynPad: построен из последней основной ветки.
  • .NET Core: 3.1.402

1 ответ

После проверки репо я могу сделать OpenFileDialog поработайте, добавив строку ниже:

await Helpers.RunWpfAsync();

Полный код приведен ниже:

#r "framework:Microsoft.WindowsDesktop.App"

using Microsoft.Win32;

await Helpers.RunWpfAsync(); // initializes a dispatcher thread

var fd = new OpenFileDialog
{
    Filter = "Solution files (*.sln)|*.sln"
};

if (fd.ShowDialog() == true)
    Console.WriteLine(fd.FileName);

Не уверен, что это лучший способ, но он работает!

Другие вопросы по тегам