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


Урок 3. Доступ к веб-службе

После добавления в проект ссылки на веб-службу сервера отчетов будет создан экземпляр класса-посредника этой веб-службы. Теперь можно получить доступ к методам веб-службы путем вызова методов класса-посредника. Когда приложение вызывает эти методы, код прокси-класса, созданный Visual Studio, обрабатывает обмен данными между приложением и веб-службой.

Вначале нужно создать экземпляр класса-посредника веб-службы ReportingService2010. Затем с помощью класса-посредника нужно вызвать метод веб-службы GetProperties. Вызов будет использован для получения имени и описания одного из образцов отчетов под названием Company Sales.

Примечание

При доступе к веб-службе, работающей на SQL Server Express с дополнительными службами, необходимо добавить $SQLExpress к пути ReportServer. Например:

http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"

Получение доступа к веб-службе

  1. Сначала необходимо добавить пространство имен в файл Program.cs (Module1.vb в Visual Basic), добавив директиву using (Imports в Visual Basic) в файл кода. Если применить эту директиву, нет необходимости полностью уточнять типы пространства имен.

  2. Чтобы сделать это, добавьте следующий код в начало файла с кодом:

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. После добавления директивы пространства имен в файл кода необходимо ввести следующий код в описание главного метода приложения командной строки. При настройке свойства Url экземпляра веб-службы обязательно измените имя сервера:

    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);  
       }  
    }  
    
  4. Сохраните решение.

В образце кода из этого пошагового руководства используется метод веб-службы GetProperties для получения свойства образца отчета «Продажи компании в 2012 г.». Метод GetProperties принимает два аргумента: имя отчета, для которого требуется получить сведения о свойствах, и массив объектов Property[] , содержащий имена свойств, значения которых требуется извлечь. Этот метод возвращает массив объектов Property[] , который содержит имена и значения свойств, указанных в аргументе свойств.

Примечание

Если в качестве аргумента свойств указать пустой массив Property[] , будут возвращены все доступные свойства.

В коде предыдущего примера используется метод GetProperties, возвращающий имя и описание образца отчета «Продажи компании в 2012 г.». В этом коде используется цикл foreach, чтобы вывести свойства и значения на консоль.

Дополнительные сведения о создании и использовании класса-посредника для веб-службы сервера отчетов см. в разделе Creating the Web Service Proxy.

См. также:

Урок 4. Запуск приложения (VB-VC#)
Доступ к веб-службе сервера отчетов на языке Visual Basic или Visual C# (учебник по службам SSAS)