PowerShell - установка типа столбца Data Row для пользовательского объекта

Я считаю себя довольно новым для создания сценариев в PowerShell, и в настоящее время у меня возникают проблемы с назначением возвращаемого значения запроса API для строки данных.

Возвращаемое значение выглядит как пользовательский объект: <APITenant>.FRSHEATServiceReqTemplateParam и если я пытаюсь присвоить это таблице данных, он просто отображает имя объекта, а не значения, например

Name                                 Params                                   
----                                 ------                                   
Access to Mailbox/Distribution Group OscarStg.FRSHEATServiceReqTemplateParam[]
strSubscriptionRecId : 0221877CF3474492B8ACD9F7C0D94E4A
strDateSubscribed    : 10/6/2017 8:09:58 AM
strOrgUnitId         : 37393D7C9B554ACEB1F2F2505BA1FF6D
strName              : Access to Mailbox/Distribution Group
strItem              : 
strDescription       : Request for access to be added or removed from a 
                       mailbox/group.
strServiceName       : Email Messaging Service
strRecId             : 21BB52854D524958A5C9F9E0DCAB60CB
lstParameters        : {eacc_dpmnt, eacc_req, eacc_reqEmail, eacc_item...}

Могу ли я присвоить фактическое значение таблице данных?

РЕДАКТИРОВАТЬ:

$cboTmpl.Add_SelectedIndexChanged({
    $tmplRecId = $cboTmpl.SelectedItem["RecId"]
    $index = $dTblTmpl.RecId.IndexOf($cboTmpl.SelectedValue)
    If($dTblTmpl.Rows[$index].SubId.GetTypeCode() -eq 'DBNull'){
        $tmpSubName = $dTblTmpl.Rows[$index].Name.Replace("&", "&amp;")
        $dTblTmpl.Rows[$index].SubId = ($Oscar.GetSubscriptionId($connect.sessionKey, `
        $txtTenant.Text, $tmpSubName)).subscriptionId
    }
    If($dTblTmpl.Rows[$index].Params.GetTypeCode() -eq 'DBNull'){
        $currParams = ($Oscar.GetPackageData($connect.sessionKey, $txtTenant.Text, $dTblTmpl.Rows[$index].SubId)).srSubscription.lstParameters
        $dTblTmpl.Rows[$index].Params = $currParams
    }
})

Последний блок if вызывает метод и присваивает его таблице данных. Я пытался использовать -ExpandProperty, но он аналогичным образом назначает строку 'System.Object[]' в качестве значения.

Нужно ли явно определять объект столбца?

1 ответ

Решение

Получил эту работу - я должен был явно определить столбец как базовый тип объекта. В этом случае, [System.Array],

New-Variable -Name "$('col' + $Header)" -Value (New-Object `
        System.Data.DataColumn $Header,([System.Array])) -Force}

Теперь он возвращает правильное значение.

$dTblTmpl.Rows[2] | select Name, Params

Name           Params
----           ------
[TEST] Request {chk, qty}
Другие вопросы по тегам