Занятие 3. Доступ к веб-службе
После добавления в проект ссылки на веб-службу сервера отчетов будет создан экземпляр класса-посредника этой веб-службы. Теперь можно получить доступ к методам веб-службы путем вызова методов класса-посредника. Когда приложение вызывает эти методы, код класса-посредника, сформированный средой Visual Studio, обеспечивает соединения между приложением и веб-службой.
Вначале нужно создать экземпляр класса-посредника веб-службы ReportingService2005. Затем с помощью класса-посредника нужно вызвать метод веб-службы GetProperties. Вызов будет использован для получения имени и описания одного из образцов отчетов под названием Company Sales.
Примечание. |
---|
Для доступа к веб-службе при использовании SQL Server Express with Advanced Services к пути «ReportServer» необходимо добавить выражение «$SQLExpress». Например:
http://<Server Name>/reportserver$sqlexpress/reportservice2005.asmx" |
Получение доступа к веб-службе
В первую очередь требуется добавить в файл кода пространство имен в файл Program.cs (Module1.vb в Visual Basic) с помощью добавления директивы using (Import в Visual Basic). Если применить эту директиву, нет необходимости полностью уточнять типы пространства имен.
Чтобы сделать это, добавьте следующий код в начало файла с кодом:
Imports System Imports GetPropertiesSample.ReportService2005
using System; using GetPropertiesSample.ReportService2005;
После добавления директивы пространства имен в файл кода необходимо ввести следующий код в описание главного метода приложения командной строки. При настройке свойства Url экземпляра веб-службы обязательно измените имя сервера:
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); } }
Сохраните решение.
В образце кода из этого пошагового руководства используется метод веб-службы GetProperties для получения свойства образца отчета Company Sales. Метод GetProperties имеет два аргумента: имя отчета, для которого необходимо извлечь сведения о свойствах, а также массив объектов Property[], содержащий имена свойств, значения которых необходимо получить. Этот метод возвращает массив объектов Property[], который содержит имена и значения свойств, указанных в аргументе свойств.
Примечание. |
---|
Если в качестве аргумента свойств указать пустой массив Property[], будут возвращены все доступные свойства. |
В коде предыдущего примера используется метод GetProperties, возвращающий имя и описание образца отчета Company Sales. В этом коде используется цикл foreach, чтобы вывести свойства и значения на консоль.
Дополнительные сведения о создании и использовании класса-посредника для веб-службы сервера отчетов см. в разделе Creating the Web Service Proxy.
См. также
Задачи
Занятие 4. Выполнение приложения (VB/VC#)
Основные понятия
Учебник. Доступ к веб-службе сервера отчетов на языке Visual Basic или Visual C#