私はC#でPowerShellモジュールを作成しています。実行時にコマンドレットの一つは、このように呼ばれます:実行時にユーザーがパラメータを自動補完するために、タブキーを押すまで、これが機能しているTabキーから呼び出されるコンストラクタを避ける
public TestPath()
{
checkPathExistence();
}
:
Test-Path -Path \\path\to\somewhere
私のコンストラクタは次のようになります名前:
Test-Path -Pa <TAB>
タブキー火災コンストラクタとTHI私のcheckPathExistence()
メソッドが望ましくない結果を引き起こします。 checkPathExistence()
がを待つようにするには、何かを確認する前にキーを入力してください。
最初の考えは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);
}
}
}
ここで、TestPathのコンストラクタが呼び出されましたか? – ltiveron