Я пишу модуль PowerShell на С#. Во время выполнения один из командлетов вызывается так:
Test-Path -Path \\path\to\somewhere
Мой конструктор выглядит так:
public TestPath()
{
checkPathExistence();
}
Это работает до тех пор, пока пользователь во время выполнения не нажмет клавишу Tab для автозаполнения имени параметра:
Test-Path -Pa <TAB>
Клавиша Tab запускает конструктор, и это приводит к тому, что мой метод checkPathExistence()
дает нежелательные результаты. Как заставить мой checkPathExistence()
ждать нажатия клавиши Enter, прежде чем что-либо проверять?
Моей первой идеей было проверить, что Path
является нулевым. Но Path
не является обязательным. Если командлет вызывается без каких-либо параметров, устанавливается некоторый стандартный путь из предыдущих сеансов.
void checkPathExistence()
{
if (!File.Exists(this.Path))
{
Path = Properties.Settings.Default.Path;
}
else
{
Properties.Settings.Default.Path = Path;
Properties.Settings.Default.Save();
Console.WriteLine("The path has changed to: " + Path);
}
}
}