Especifica que los mensajes SOAP enviados hacia y desde el método utilizan el formato
RPC.
Espacio de nombres: System.Web.Services.Protocols
Ensamblado: System.Web.Services (en system.web.services.dll)
Visual Basic (Declaración)
<AttributeUsageAttribute(AttributeTargets.Method)> _
Public NotInheritable Class SoapRpcMethodAttribute
Inherits Attribute
Dim instance As SoapRpcMethodAttribute
[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class SoapRpcMethodAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method)]
public ref class SoapRpcMethodAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */
public final class SoapRpcMethodAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method)
public final class SoapRpcMethodAttribute extends Attribute
El Lenguaje de descripción de servicios Web (WSDL) define dos estilos para dar formato a un método de servicios Web XML, u operación, en un mensaje SOAP: RPC y Document. El formato RPC indica que se dará formato a la operación de acuerdo con la especificación SOAP para utilizar SOAP para RPC, que también se conoce como la sección 7 de la especificación SOAP. El formato RPC indica que todos los parámetros se encapsulan en un único elemento XML cuyo nombre corresponde al método de servicios Web XML, y que cada elemento XML de dicho elemento XML representa un parámetro cuyo nombre corresponde al parámetro que representa.
Los mensajes SOAP a los que se ha dado formato con ambos estilos RPC y Document se pueden utilizar para la comunicación con un servicio Web XML en forma de llamada de procedimiento remoto (RPC). Sin embargo, el estilo Document también se puede utilizar para llevar a cabo la comunicación de una correspondencia imprecisa. Por lo tanto, se recomiendan los servicios Web XML de estilo Document. Para obtener información detallada, vea el tema Customizing SOAP Messages.
Para obtener más información, vea Personalizar el formato de los mensajes SOAP.
Este atributo se puede aplicar a un método de servicios Web XML del servidor y a una clase de proxy del cliente. Los métodos de servicios Web XML cuya propiedad OneWay es true no tienen acceso a su HttpContext. Por lo tanto, el acceso a cualquiera de las propiedades de la clase WebService devuelve referencia null (Nothing en Visual Basic).
En el siguiente ejemplo de código, se establece el estilo de mensaje en Rpc para el método de servicios Web XML GetUserName.
<%@ 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
<%@ 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;
}
System.Object
System.Attribute
System.Web.Services.Protocols.SoapRpcMethodAttribute
Seguridad para subprocesos
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter
Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.
.NET Framework
Compatible con: 3.0, 2.0, 1.1, 1.0
.NET Compact Framework
Compatible con: 2.0, 1.0