Ответ 1
Попробуйте следующее:
PS Z:\> $o = @{}
PS Z:\> $o.Name = "Ted"
PS Z:\> $o.Age = 10
Примечание. Этот объект можно также включить как -Body
для Invoke-RestMethod
, и он будет сериализовать его без дополнительной работы.
Я хочу создать объект произвольных значений, вроде того, как я могу это сделать в С#
var anon = new { Name = "Ted", Age = 10 };
Попробуйте следующее:
PS Z:\> $o = @{}
PS Z:\> $o.Name = "Ted"
PS Z:\> $o.Age = 10
Примечание. Этот объект можно также включить как -Body
для Invoke-RestMethod
, и он будет сериализовать его без дополнительной работы.
Как @Vasyl указал выше, принятый ответ создает хеш-таблицу, которая на самом деле не имеет свойств, но вместо этого содержит словарь, содержащий keys
и values
, поэтому он будет работать странно с некоторыми другими функциями PS
See: [TG42]
Вместо этого, 4 способа создания объектов PowerShell, попробуйте выполнить одно из следующих действий:
#1 is probably the newest and easiest syntax unless you have a strong preference
PSCustomObject
$o = [pscustomobject]@{
Name = "Ted";
Age = 10
}
Select-Object
$o = Select-Object @{n='Name';e={'Ted'}},
@{n='Age';e={10}} '
-InputObject ''
New-Object
и Add-Member
$o = New-Object -TypeName psobject
$o | Add-Member -MemberType NoteProperty -Name Name -Value 'Ted'
$o | Add-Member -MemberType NoteProperty -Name Age -Value 10
New-Object
и хеш-таблиц$properties = @{
Name = "Ted";
Age = 10
}
$o = New-Object psobject -Property $properties;