Compartilhar via


SoapRpcMethodAttribute Classe

Definição

Especifica que as mensagens SOAP enviadas de/para o método usam a formatação 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
Herança
SoapRpcMethodAttribute
Atributos

Exemplos

O exemplo de código a seguir define o estilo Rpc de mensagem como para o método de GetUserName serviço Web 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

Comentários

A WSDL (Linguagem de Descrição dos Serviços Web) define dois estilos de como um método de serviço Web XML, ou operação, pode ser formatado em uma mensagem SOAP: RPC e Document. RPC formatação refere-se à formatação da operação de acordo com a especificação SOAP para usar SOAP para RPC; também conhecido como Seção 7 da especificação SOAP. RPC A formatação afirma que todos os parâmetros são encapsulados em um único elemento XML chamado após o método de serviço Web XML e que cada elemento XML dentro desse elemento XML representa um parâmetro chamado após o parâmetro que ele está representando.

As mensagens SOAP formatadas nos RPC estilos e Document podem ser usadas para se comunicar com um serviço Web XML de maneira RPC (Chamada de Procedimento Remoto). No entanto, o Document estilo também pode ser facilmente usado para se comunicar de maneira flexível. Portanto, Document os serviços Web XML de estilo são recomendados. Para obter mais detalhes, consulte o Customizing SOAP Messages tópico.

Para obter mais detalhes, consulte Personalizando a formatação de mensagens SOAP.

Esse atributo pode ser aplicado a um método de serviço Web XML no servidor e a uma classe proxy no cliente. Métodos de serviço Web XML que têm a OneWay propriedade definida como true não têm acesso ao seu HttpContext. Dessa forma, acessar qualquer uma das propriedades da WebService classe retornará null.

Construtores

SoapRpcMethodAttribute()

Inicializa uma nova instância da classe SoapRpcMethodAttribute definindo todas as propriedades para seus valores padrão.

SoapRpcMethodAttribute(String)

Inicializa uma nova instância da classe SoapRpcMethodAttribute, configurando a propriedade Action como o valor do parâmetro action.

Propriedades

Action

Obtém ou define o campo de cabeçalho HTTP SOAPAction da solicitação SOAP.

Binding

Obtém ou define a associação para a qual um método de serviço Web XML implementa uma operação.

OneWay

Obtém ou define se um cliente de serviço Web XML aguarda até que o servidor Web conclua o processamento de um método de serviço Web XML.

RequestElementName

Obtém ou define o elemento XML associado à solicitação SOAP para um método de serviço Web XML.

RequestNamespace

Obtém ou define o namespace de XML associado à solicitação SOAP para um método de serviço Web XML.

ResponseElementName

Obtém ou define o elemento XML associado à resposta SOAP para um método de serviço Web XML.

ResponseNamespace

Obtém ou define o namespace de XML associado à resposta SOAP para um método de serviço Web XML.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)
Use

Obtém ou define a associação usada ao invocar o método.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também