C# で PowerShell プロバイダーを作成しています。プロバイダーは、ドライブのようなインターフェイスを介してアプリケーション ドメイン オブジェクトを公開します。例えば:
my:\Users\joe@blow.com
my:\Customers\Marty
このデータは、最終的にデータベースから取得されます。
データを取得するためにいつデータベースにアクセスし、いつキャッシュする必要があるかについて、優れたガイダンスを見つけることができませんでした。PowerShell が ItemExists や GetChildNames などのメソッドを何度も呼び出していることがわかりました。多くの場合、同じコマンドに対して繰り返します。たとえば、オートコンプリートのために Tab キーを押したからといって、データベースに 5 回または 6 回アクセスするのは実際的ではありません。
しかし同時に、ユーザーとしてコマンド プロンプトでGet-ChildItem
( dir
) と入力してリストを表示し、PowerShell の外部で何かを実行して、データが更新されたことを確認します。別のディレクトリ リストを取得すると、データベース。
問題を説明する適切な用語を (PowerShell の用語で) 知っていれば、答えを Google で検索したり、既存の重複した質問を見つけたりできると思いますが、行き詰まっています。