Lektion 3: Zugreifen auf den Webdienst
Nachdem Sie dem Projekt einen Verweis auf den Berichtsserver-Webdienst hinzugefügt haben, besteht der nächste Schritt darin, eine Instanz der Proxyklasse des Webdiensts zu erstellen. Auf die Methoden des Webdiensts kann durch Aufrufen der Methoden in der Proxyklasse zugegriffen werden. Wenn diese Methoden von Ihrer Anwendung aufgerufen werden, behandelt der von Visual Studio generierte Proxyklassencode die Kommunikation zwischen Ihrer Anwendung und dem Webdienst.
Zuerst erstellen Sie ReportingService2010 - eine Instanz der Proxyklasse des Webdiensts. Dann rufen Sie die GetProperties-Methode des Webdiensts mithilfe der Proxyklasse auf. Sie verwenden diesen Aufruf zum Abrufen des Namens und der Beschreibung eines der Beispielsberichte, Company Sales.
Hinweis |
---|
Beim Zugreifen auf einen Webdienst, der unter SQL Server Express mit Advanced Services ausgeführt wird, müssen Sie "$SQLExpress" an den "ReportServer"-Pfad anfügen. Beispiel: http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx" |
So greifen Sie auf den Webdienst zu
Zunächst müssen Sie der Datei Program.cs (Module1.vb in Visual Basic) den Namespace hinzufügen, indem Sie der Codedatei eine using-Direktive (Imports in Visual Basic) hinzufügen. Wenn Sie diese Direktive verwenden, müssen die Typen im Namespace nicht vollqualifiziert sein.
Fügen Sie dazu den folgenden Code am Anfang der Codedatei ein:
Imports System Imports GetPropertiesSample.ReportService2010
using System; using GetPropertiesSample.ReportService2010;
Nachdem Sie die Namespacedirektive in die Codedatei eingegeben haben, geben Sie den folgenden Code in die Main-Methode Ihrer Konsolenanwendung ein. Stellen Sie sicher, dass Sie beim Festlegen der Url-Eigenschaft der Webdienstinstanz den Namen Ihres Servers ändern:
Sub Main() Dim rs As New ReportingService2010 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx" Dim name As New [Property] name.Name = "Name" Dim description As New [Property] description.Name = "Description" Dim properties(1) As [Property] properties(0) = name properties(1) = description Try Dim returnProperties As [Property]() = rs.GetProperties( _ "/AdventureWorks 2012 Sample Reports/Company Sales 2012", properties) Dim p As [Property] For Each p In returnProperties Console.WriteLine((p.Name + ": " + p.Value)) Next p Catch e As Exception Console.WriteLine(e.Message) End Try End Sub
static void Main(string[] args) { ReportingService2010 rs = new ReportingService2010(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx"; Property name = new Property(); name.Name = "Name"; Property description = new Property(); description.Name = "Description"; Property[] properties = new Property[2]; properties[0] = name; properties[1] = description; try { Property[] returnProperties = rs.GetProperties( "/AdventureWorks 2012 Sample Reports/Company Sales 2012",properties); foreach (Property p in returnProperties) { Console.WriteLine(p.Name + ": " + p.Value); } } catch (Exception e) { Console.WriteLine(e.Message); } }
Speichern Sie die Projektmappe.
Der Beispielcode in dieser exemplarischen Vorgehensweise verwendet die GetProperties-Methode des Webdiensts, um Eigenschaften des Beispielberichts Company Sales 2012 abzurufen. Die GetProperties-Methode hat zwei Argumente: den Namen des Berichts, für den Sie Eigenschaftsinformationen abrufen möchten, und ein Array von Property[]-Objekten, das die Namen von Eigenschaften enthält, deren Werte Sie abrufen möchten. Die Methode gibt auch ein Array von Property[]-Objekten zurück, die die Namen und Werte der Eigenschaften enthalten, die im Eigenschaftenargument angegeben sind.
Hinweis |
---|
Wenn Sie ein leeres Property[]-Array für das Eigenschaftenargument angeben, werden alle verfügbaren Eigenschaften zurückgegeben. |
Im vorherigen Beispiel verwendet der Code die GetProperties-Methode, um den Namen und die Beschreibung des Beispielberichts Company Sales 2012 zurückzugeben. Im Code wird dann eine foreach-Schleife verwendet, um die Eigenschaften und Werte auf die Konsole zu schreiben.
Weitere Informationen zum Erstellen und Verwenden einer Proxyklasse für den Berichtsserver-Webdienst finden Sie unter Erstellen des Webdienstproxys.
Siehe auch
Aufgaben
Lektion 3: Zugreifen auf den Webdienst