首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Powershell中难以加载Spectre.Console .NET类型的类

在Powershell中难以加载Spectre.Console .NET类型的类
EN

Stack Overflow用户
提问于 2022-08-14 07:31:23
回答 1查看 140关注 0票数 1

我正在尝试使用优秀的Spectre.Console在powershell中创建良好的交互式提示。到目前为止,我可以使用以下方法获得与工作等效的简单读取主机:

代码语言:javascript
复制
Add-Type -AssemblyName ".\path\to\Spectre.Console.dll"
[Spectre.Console.AnsiConsole]::Ask("Test Ask","Test Default")

它将产生:

代码语言:javascript
复制
Test Ask (Test Default): Test 123
Test 123

但是,当我试图访问“类型化”类时,如下所示:

代码语言:javascript
复制
$select = [Spectre.Console.SelectionPrompt]

我知道错误:

代码语言:javascript
复制
InvalidOperation: C:\path\to\proj\testing.ps1:7:11
Line |
   7 |  $select = [Spectre.Console.SelectionPrompt]
     |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Unable to find type [Spectre.Console.SelectionPrompt].

查看幽灵文档,我可以看到这个类需要一个返回类型,所以我猜想它找不到类,因为我不太清楚如何在Posh中为它提供一个类型。我尝试过一些变体,例如添加::New(),::Prompt(),并在对象前面加上字符串,但是它总是找不到类型。

我能够在没有问题的情况下在C#中实现等效的工作,但如果可能的话,我希望避免编写一个包装类来使它以高级的形式运行。

代码语言:javascript
复制
Name                           Value
----                           -----
PSVersion                      7.2.5
PSEdition                      Core
GitCommitId                    7.2.5
OS                             Microsoft Windows 10.0.19043
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-14 07:45:03

我发了这篇文章5分钟后就算出来了。

恰当的术语是仿制药,通过powershell访问此类类的方法如下:

代码语言:javascript
复制
[Spectre.Console.SelectionPrompt[string]]::New()

它成功地实例化具有返回类型字符串的新对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73349863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档