【发布时间】:2012-12-11 06:18:31
【问题描述】:
我正在编写一些旨在(也)与PowerShell 一起使用的对象。
我希望能够以异步方式直接写入PowerShell 控制台。
到目前为止,我做了以下事情:
- 创建了一个 IUtilityHost 接口,该接口公开了一些方法,例如 WriteLine
- 我在 PSUtilityHost 中实现了接口:包装了 PSHost 对象的 IUtilityHost 类
- 实现WriteLine方法是在PSHost.UI对象上调用WriteLine方法实现的。
问题是我有一个奇怪的输出混合了 Read-Host 消息,我有时需要在需要手动输入时阻止执行。
我想知道是否有更好的方法将消息异步发送到 powershell 主机。
谢谢
【问题讨论】:
-
您是否正在创建自己的 PowerShell 主机?如果是这样,您可以完全控制主机 UI 实现。如果不是,您的代码是否需要写入主机,始终使用 cmdlet 的执行上下文运行?或者,用户是否可以在脚本中调用您的对象,然后该对象会写入主机(在 cmdlet 调用的上下文之外)?
-
在第一个实例中,我想使用 PowerShell 控制台的默认 PSHost,但稍后我想将它也用于其他自定义主机。这就是为什么我更喜欢使用标准方法和模式。该对象存在于一个脚本中,但本质上是一个双工 WCF 服务,我想将请求日志写入 PowerShell 控制台,以便我可以使用某些特定方法“回复”客户端。因此,该对象位于 cmdlet 调用的上下文之外。
标签: c# powershell