powershell - 从模块中导出 Powershell 5 枚举声明

标签 powershell enums powershell-5.0 powershell-cmdlet powershell-module

我在模块中定义了一个枚举类型。加载模块后,如何将其导出为可从外部访问?

enum fruits {
 apple
 pie
}

function new-fruit {
    Param(
        [fruits]$myfruit
    )
    write-host $myfruit
}

我的高级函数采用枚举而不是 ValidateSet如果枚举可用,则有效,但如果不可用,则失败。

更新:
将它分离成一个 ps1 并对其进行点源(ScriptsToProcess)是可行的,但是我希望有一种更清洁的方法。

最佳答案

尝试从 5.0.x 上的嵌套模块 (.psm1) 使用/导出枚举时遇到了同样的问题。

通过使用 Add-Type 设法使其正常工作反而:

Add-Type @'
public enum fruits {
    apple,
    pie
}
'@

然后你应该可以使用
[fruits]::apple

关于powershell - 从模块中导出 Powershell 5 枚举声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348069/

相关文章:

.net - 如何使用 PowerShell 获取自定义程序集属性

c# - 如何从 System.IO.File 调用访问 PSDrive?

matlab - 如何在 MATLAB 中创建枚举类型?

c# - 如何区分 Flags 枚举和普通枚举?

file - 尽管文件夹已被删除,但移动项目会导致 "File Already Exists"错误

xml - PowerShell 事件日志 xml xpath 选择不起作用

powershell - 在 Powershell 中验证本地管理员密码更改

powershell - 有没有办法让 Powershell 5 的 Get-Help 解析当前脚本?

java - Java 中 int 转换为 enum

powershell - 查找针对 .NET Core 3.1 的正在运行的进程