Поделиться через


Задание пространства имен элементов для метода GetProperties

Заголовок SOAP ItemNamespaceHeader в службах Службы Reporting Services предназначен для получения свойств элементов по двум различным идентификаторам элементов: полному пути к элементу и идентификатору элемента.

Во время вызова метода GetProperties в качестве аргумента обычно передается полный путь к элементу, свойства которого нужно получить. Класс ItemNamespaceHeader позволяет задать заголовок SOAP для вызова метода, чтобы позволить использовать метод GetProperties, передавая идентификатор элемента в качестве идентификатора.

В следующем образце кода значения свойств элемента возвращаются на основании идентификатора элемента.

ПримечаниеПримечание

По умолчанию не нужно задавать значение ItemNamespaceHeader, если методу GetProperties в качестве идентификатора элемента передается полное имя пути.

Imports System
Imports System.Collections


Class Sample
   Sub Main()
      Dim rs As New ReportingService2010()
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials
      rs.Url = "http://<Server Name>/reportserver/ReportService2010.asmx"

      Dim items() As CatalogItem

      Try
         ' Need the ID property of items. Normally, you would already have 
         ' this stored somewhere.
         items = rs.ListChildren("/AdventureWorks Sample Reports", False)

         ' Set the item namespace header to be GUID-based
         rs.ItemNamespaceHeaderValue = New ItemNamespaceHeader()
         rs.ItemNamespaceHeaderValue.ItemNamespace = ItemNamespaceEnum.GUIDBased

         ' Call GetProperties with item ID.
         If Not (items Is Nothing) Then
            Dim item As CatalogItem
            For Each item In  items
               Dim properties As [Property]() = rs.GetProperties(item.ID, Nothing)
               Dim property As [Property]
               For Each property In  properties
                  Console.WriteLine(([property].Name + ": " + [property].Value))
               Next property
               Console.WriteLine()
            Next item
         End If

      Catch e As Exception
         Console.WriteLine((e.Message + ": " + e.StackTrace))
      End Try
   End Sub 'Main
End Class 'Sample
using System;
using System.Collections;


class Sample
{
   static void Main()
   {
   ReportingService2010 rs = new ReportingService2010();
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
      rs.Url = "http://<Server Name>/reportserver/ReportService2010.asmx";

      CatalogItem[] items;

      try
      {
         // Need the ID property of items. Normally, you would already have 
         // this stored somewhere.
         items = rs.ListChildren("/AdventureWorks Sample Reports", false);

         // Set the item namespace header to be GUID-based
         rs.ItemNamespaceHeaderValue = new ItemNamespaceHeader();
         rs.ItemNamespaceHeaderValue.ItemNamespace = ItemNamespaceEnum.GUIDBased;

         // Call GetProperties with item ID.
         if (items != null)
         {
            foreach( CatalogItem item in items)
            {
               Property[] properties = rs.GetProperties(item.ID, null);
               foreach (Property property in properties)
               {
                  Console.WriteLine(property.Name + ": " + property.Value);
               }
               Console.WriteLine();
            }
         }
      }

      catch (Exception e)
      {
         Console.WriteLine(e.Message);
      }
   }
}