Festlegen des Elementnamespaces für die GetProperties-Methode
Sie können den ItemNamespaceHeader-SOAP-Header in Reporting Services verwenden, um die Elementeigenschaften über zwei verschiedene Elementbezeichner abzurufen: über den vollständigen Pfad des Elements oder die ID des Elements.
Wenn Sie einen Aufruf an die GetProperties-Methode machen, übergeben Sie normalerweise ein Argument an den vollständigen Pfad des Elements, für das Sie Eigenschaften abrufen möchten. Mithilfe von ItemNamespaceHeader können Sie den SOAP-Header für den Methodenaufruf so einstellen, dass Sie GetProperties verwenden können, indem Sie die ID des Elements als Bezeichner übergeben.
Im folgenden Codebeispiel werden die Werte für die Elementeigenschaften auf Grundlage der ID des Elements abgerufen.
Hinweis |
---|
Sie müssen standardmäßig keinen Wert für ItemNamespaceHeader festlegen, wenn Sie den vollständigen Pfadnamen als Elementbezeichner an die GetProperties-Methode übergeben. |
Imports System
Imports System.Collections
Imports myNamespace.MyReferenceName
Class Sample
Sub Main()
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rs.Url = "http://<Server Name>/reportserver/ReportService2005.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;
using myNamespace.MyReferenceName;
class Sample
{
static void Main()
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://<Server Name>/reportserver/ReportService2005.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);
}
}
}
Siehe auch