Я новичок в использовании web services
под powershell
, поэтому, возможно, у меня есть базовое недопонимание о чем-то. Я работаю с Microsoft Reporting Services
. Вот сценарий воспроизведения.
$computer = "rptdev"
$uri = "http://$($computer)/ReportServer/ReportService.asmx?WSDL"
$reporting = New-WebServiceProxy -uri $uri -UseDefaultCredential -namespace "ReportingWebService"
$dsRef = new-object ReportingWebService.DataSourceReference
$ds = new-object ReportingWebService.DataSource
$dsRef.GetType()
$ds.GetType()
Если я запускаю это, я получаю нечто, более или менее похожее на это:
Name BaseType
---- --------
DataSourceReference ReportingWebService.DataSourceDefinitionOrReference
DataSource System.Object
Итак, мой вопрос: почему DataSource имеет System.Object
как BaseType
, когда DataSourceReference
явно имеет тип объекта, основанный на веб-объекте? Они оба были созданы из пространства имен ReportingWebService
, не так ли?
Моя основная проблема в том, что мне нужно передать массив DataSources
обратно в SetItemDataSources
, а SetItemDataSources
дросселирует массив System.Objects
, и я не могу приведи к тому, что я хочу.