我正在用 C# 编写一个 PowerShell 提供程序。提供者通过类似驱动器的接口公开应用程序域对象。例如:
my:\Users\joe@blow.com
my:\Customers\Marty
这些数据最终来自数据库。
关于何时应该去数据库获取数据以及何时应该缓存它,我一直找不到任何很好的指导。我发现 PowerShell 多次调用 ItemExists 和 GetChildNames 等方法;经常重复相同的命令。例如,仅仅因为他们点击 Tab 进行自动完成而访问数据库 5 或 6 次是不切实际的。
但同时,作为命令提示符下的用户,如果我键入Get-ChildItem
( dir
) 并查看列表,然后在 PowerShell 之外执行一些操作,以便我知道数据已刷新,获取另一个目录列表应该会看到对数据库。
我觉得如果我知道描述我的问题的正确术语(用 PowerShell 用语),我将能够通过谷歌搜索答案或找到现有的重复问题,但我被卡住了。