Lekcja 3: Uzyskiwanie dostępu do usługa sieci Web
Po dodaniu odwołania dla usługa sieci Web Serwer raportów do projektu, następnym krokiem jest utworzenie wystąpienie klasy proxy usługi sieci Web.Można następnie uzyskać dostęp metody usługa sieci Web poprzez wywołanie metody klasy proxy.Gdy aplikacja wywołuje tych metod, kod klasy proxy generowane przez Visual Studio obsługuje komunikację między usługa sieci Web i aplikacji.
Najpierw należy utworzyć wystąpienie klasy serwera proxy usługa sieci Web, ReportingService2005. Następnie będzie nawiązywanie połączeń z usługa sieci Web GetProperties(String, array<Property[]) Metoda, za pomocą klasy serwera proxy. Wywołanie będziesz używać do pobierania nazwy i opisu jednego z przykładowych raportów sprzedaży firmy.
Uwaga
Podczas uzyskiwania dostępu do usługa sieci Web, działających na SQL Server Expressz zaawansowanych usług należy dołączyć "$ SQLExpress" Ścieżka "ReportServer". Na przykład:
http://<Server Name>/reportserver$sqlexpress/reportservice2005.asmx"
Aby uzyskać dostęp do usługa sieci Web
W obszarze nazw należy najpierw dodać do pliku Program.cs Module1.vb (w Visual Basic) dodając using (Import w Visual Basic) do pliku kodu w dyrektywie. Jeśli używasz tej dyrektywie, nie ma potrzeby pełnej kwalifikacji typów w obszarze nazw.
Aby to zrobić, Dodaj następujący kod do początku pliku kodu:
Imports System Imports GetPropertiesSample.ReportService2005
using System; using GetPropertiesSample.ReportService2005;
Po wprowadzeniu dyrektywa obszaru nazw do pliku kod, wprowadź następujący kod w metodzie głównej aplikacji konsoli.Upewnij się zmienić nazwę serwera, ustawiając Adres URL właściwość wystąpienie usługa sieci web:
Sub Main() Dim rs As New ReportingService2005 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "http://<Server Name>/reportserver/reportservice2005.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 Sample Reports/Company Sales", 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) { ReportingService2005 rs = new ReportingService2005(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://<Server Name>/reportserver/reportservice2005.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 Sample Reports/Company Sales",properties); foreach (Property p in returnProperties) { Console.WriteLine(p.Name + ": " + p.Value); } } catch (Exception e) { Console.WriteLine(e.Message); } }
Zapisz rozwiązania.
Przegląd kod przykładowy używa GetProperties(String, array<Property[]) metoda usługa sieci Web, aby pobrać właściwości raportu próbki, sprzedaży firmy. The GetProperties(String, array<Property[]) metoda takes two arguments: Nazwa raportu, dla której chcesz pobrać informacje o właściwościach i tablicę [właściwość] obiektów, które zawiera nazwy właściwość, których wartości mają zostać pobrane.Metoda także zwraca tablicę [właściwość] obiektów, które zawiera nazwy i wartości właściwość określonego w argumencie właściwość.
Uwaga
Jeśli zostanie podana pusty [właściwość] tablicy argumentu właściwość, zwracane są wszystkie właściwość dostępne.
W poprzednim przykładzie w kodzie wykorzystano GetProperties(String, array<Property[]) Metoda zwraca nazwę i opis raportu próbki, sprzedaży firmy. Wykorzystuje kod foreach w pętli do zapisywania właściwości i wartości do konsoli.
Aby uzyskać więcej informacji na temat tworzenia i korzystania z klasy serwera proxy dla usługa sieci Web Serwer raportów, zobacz Tworzenie serwera proxy usługa sieci Web.