SoapRpcMethodAttribute Класс

Определение

Указывает, что сообщения SOAP, которыми обмениваются с методом, используют форматирование RPC.

public ref class SoapRpcMethodAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class SoapRpcMethodAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=true)]
public sealed class SoapRpcMethodAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type SoapRpcMethodAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=true)>]
type SoapRpcMethodAttribute = class
    inherit Attribute
Public NotInheritable Class SoapRpcMethodAttribute
Inherits Attribute
Наследование
SoapRpcMethodAttribute
Атрибуты

Примеры

В следующем примере кода для метода веб-службы XML задается стиль Rpc GetUserName сообщения.

<%@ WebService Language="C#" class="MyUser" %>
 using System;
 using System.Web.Services;
 using System.Web.Services.Protocols;
 
 public class MyUser : WebService {
 
       [ SoapRpcMethod(Action="http://www.contoso.com/Sample", 
           RequestNamespace="http://www.contoso.com/Request",
           RequestElementName="GetUserNameRequest",
           ResponseNamespace="http://www.contoso.com/Response",
           ResponseElementName="GetUserNameResponse")]
      [ WebMethod(Description="Obtains the User Name") ]
      public UserName GetUserName() {
           string temp;
           int pos;
           UserName NewUser = new UserName();
           
           // Get the full user name, including the domain name if applicable.
           temp = User.Identity.Name;
 
           // Determine whether the user is part of a domain by searching for a backslash.
           pos = temp.IndexOf("\\");
           
           // Parse out the domain name from the string, if one exists.
           if (pos <= 0)
                 NewUser.Name = User.Identity.Name;
           else {
               NewUser.Name = temp.Remove(0,pos+1);
                 NewUser.Domain = temp.Remove(pos,temp.Length-pos);
           } 
       return NewUser;
      }
 
 }   
 
 public class UserName {
 
     public string Name;
     public string Domain;
 }
<%@ WebService Language="VB" class="MyUser" %>
Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols

Public Class MyUser
    Inherits WebService    
    
    <SoapRpcMethod(Action := "http://www.contoso.com/Sample", _
    RequestNamespace := "http://www.contoso.com/Request", _
    RequestElementName := "GetUserNameRequest", _
    ResponseNamespace := "http://www.contoso.com/Response", _
    ResponseElementName := "GetUserNameResponse"), _
    WebMethod(Description := "Obtains the User Name")> _
    Public Function _
        GetUserName() As UserName
        
        Dim temp As String
        Dim pos As Integer
        Dim NewUser As New UserName()
        
        ' Get the full user name, including the domain name if applicable.
        temp = User.Identity.Name
        
        ' Determine whether the user is part of a domain by searching for a backslash.
        pos = temp.IndexOf("\")
        
        ' Parse out the domain name from the string, if one exists.
        If pos <= 0 Then
            NewUser.Name = User.Identity.Name
        Else
            NewUser.Name = temp.Remove(0, pos + 1)
            NewUser.Domain = temp.Remove(pos, temp.Length - pos)
        End If
        Return NewUser
    End Function
End Class 

Public Class UserName
    
    Public Name As String
    Public Domain As String
End Class

Комментарии

Язык описания веб-служб (WSDL) определяет два стиля для способа форматирования метода веб-службы XML или операции в сообщении SOAP: RPC и Document. RPC форматирование относится к форматированию операции в соответствии со спецификацией SOAP для использования SOAP для RPC; в противном случае — раздел 7 спецификации SOAP. RPC Форматирование указывает, что все параметры инкапсулируются в одном XML-элементе, именуемом методом веб-службы XML, и что каждый XML-элемент в этом XML-элементе представляет параметр с именем параметра, который он представляет.

Сообщения SOAP, отформатированные в обоих RPC Document стилях, можно использовать для обмена данными с веб-службой XML в удаленном вызове процедур (RPC), однако Document стиль также можно легко использовать для взаимодействия в слабо связанном виде. Document Поэтому рекомендуется стиль веб-служб XML. Дополнительные сведения см. в Customizing SOAP Messages разделе.

Дополнительные сведения см. в разделе "Настройка форматирования сообщений SOAP".

Этот атрибут можно применить к методу веб-службы XML на сервере и прокси-классе на клиенте. Методы веб-службы XML, для которых OneWay задано true свойство, не имеют доступа к их HttpContext. Таким образом, доступ к любому из свойств возвращаемого WebService nullкласса.

Конструкторы

SoapRpcMethodAttribute()

Инициализирует новый экземпляр класса SoapRpcMethodAttribute, устанавливая для всех свойств значения по умолчанию.

SoapRpcMethodAttribute(String)

Инициализирует новый экземпляр класса SoapRpcMethodAttribute и присваивает свойству Action значение параметра action.

Свойства

Action

Получает или задает поле HTTP-заголовка SOAPAction запроса SOAP.

Binding

Получает или задает привязку, для которой метод веб-службы XML реализует операцию.

OneWay

Получает или задает значение, указывающее, ожидает ли клиент веб-службы XML окончания обработки веб-сервером метода веб-службы XML.

RequestElementName

Получает или задает элемент XML, сопоставленный с запросом SOAP к методу веб-службы XML.

RequestNamespace

Получает или задает пространство имен XML, сопоставленное с запросом SOAP к методу веб-службы XML.

ResponseElementName

Получает или задает элемент XML, сопоставленный с ответом SOAP для метода веб-службы XML.

ResponseNamespace

Получает или задает пространство имен XML, сопоставленное с ответом SOAP для метода веб-службы XML.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)
Use

Получает или задает привязку, используемую при вызове метода.

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

См. также раздел