PowerShell类;属性“ System.Collections.Specialized.OrderedDictionary”;如何添加字典条目

时间:2018-07-06 16:08:00

标签: powershell class dictionary add

(由于我在网络上进行了大量搜索以寻找答案,但未获得正确方向的任何提示,因此我想问自己以下问题:)

我有一个像这样的PowerShell类:

class settings
{
    [string]$CFG_Name
    [string]$CFG_Template_Path
    [string]$CFG_Target_Path
    [System.Collections.Specialized.OrderedDictionary]$ConfigSettings
}

然后我实例化此类,并想像这样使用它:

$CurrentSettings = New-Object settings    <-- works fine
$CurrentSettings.CFG_Name = 'MPD'    <-- works fine
$CurrentSettings.CFG_Template_Path = $CFG_Template_MPD_Path    <-- works fine
$CurrentSettings.CFG_Target_Path = $CFG_MPD_Path    <-- works fine

$CurrentSettings.ConfigSettings.Add("TID",$EFT_TID)    <-- doesn't work

上面的行引发:您不能在空值表达式上调用方法。

根据此页面:Documentation from Microsoft支持add方法。

为什么我不能像使用$ CFG_Name这样仅使用此属性?

如何将字典条目添加到该属性?

1 个答案:

答案 0 :(得分:0)

解决方案如下:

在添加第一个字典条目之前,您必须像这样初始化属性:

$CurrentSettings.ConfigSettings = New-Object System.Collections.Specialized.OrderedDictionary

然后您可以添加条目:

$CurrentSettings.ConfigSettings.Add("TID",$EFT_TID)