Добавление перечисления с внешним списком

#powershell #enums #add-type

#powershell #перечисления #добавить тип

Вопрос:

Я использую PS 4.0, у меня есть скрипт с параметром enum для функций.

 Add-Type -TypeDefinition @"
public enum AppEnum
{
    MyFirstItem,
    MySecondItem
}
"@
  

Я использую его так :

 Function MyFunction
{
    Param
    (
        [AppEnum]$App
    )
    Return $App
}
  

Но мой список для моего перечисления такой же, как в моем XML-файле, и его можно изменить.

Я извлекаю свой список следующим образом :

 ($xcf.Apps.W2008.LAN | Get-Member -MemberType Properties).Name | ?{$_ -ne "Repository"}
  

Я хотел бы использовать этот динамический список, извлеченный из моего XML-файла, в качестве списка для моего перечисления в «Add-Type», но я не нахожу, как это сделать, и я не знаю, возможно ли это. У вас есть какие-либо идеи, как это сделать?

Ответ №1:

 # Get list from your XML file here
$myEnumList = @("MyFirstItem", "MySecondItem")

$source = "public enum AppEnum { "   ($myEnumList | %{ $_   "," })   " }"

Add-Type -TypeDefinition $source

# Let's check value is known
[AppEnum]::MyFirstItem