Как типизированные свойства отображаются в нетипизированной DataTable в PowerShell? - PullRequest
3 голосов
/ 22 апреля 2009

Следующий код PowerShell загружает результат SQL в набор данных:

$sqlCommand = "SELECT A, B FROM TestTable"
$connection = New-Object System.Data.OleDb.OleDbConnection $connectionString
$command = New-Object System.Data.OleDb.OleDbCommand $sqlCommand,$connection
$connection.Open()
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command
$dataset = New-Object System.Data.DataSet
[void] $adapter.Fill($dataSet)

Я удивлен, узнав, что $ dataset.Tables [0] .Rows [0] .A работает! Я попытался передать строку в Get-Member, и действительно A и B перечислены как свойства объекта. Кто-нибудь знает, почему это работает? DataSet не был сгенерирован из XSD. Я пытался написать те же строки кода в C # и с помощью отладчика я не вижу свойства A и B.

1 Ответ

2 голосов
/ 22 апреля 2009

Это часть расширенной системы типов PowerShell. Для ряда известных типов, таких как наборы данных, документы XML, объекты COM, AD и WMI, PowerShell обернет базовый собственный объект в объект PSObject, который имеет дополнительные свойства, которые приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...