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
- Наследование
- Атрибуты
Примеры
Следующий пример кода задает стиль 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 |
Возвращает или задает |
| 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) |