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


SoapRpcMethodAttribute Класс

Определение

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

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

Примеры

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

<%@ 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, отформатированные в обоих RPCDocument стилях, можно использовать для обмена данными с веб-службой XML в удаленном вызове процедур (RPC), однако Document стиль также можно легко использовать для взаимодействия в свободно связанном режиме. Document Поэтому рекомендуется использовать веб-службы XML стиля. Дополнительные сведения см. в Customizing SOAP Messages разделе.

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

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

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

Имя Описание
SoapRpcMethodAttribute()

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

SoapRpcMethodAttribute(String)

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

Свойства

Имя Описание
Action

Возвращает или задает SOAPAction поле заголовка HTTP запроса 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)

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

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