Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase ProxyAttribute

 

Publicado: octubre de 2016

Indica que un tipo de objeto requiere a un proxy personalizado.

Espacio de nombres:   System.Runtime.Remoting.Proxies
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Attribute
    System.Runtime.Remoting.Proxies.ProxyAttribute

[SecurityCriticalAttribute]
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = false, 
	Inherited = true)]
[ComVisibleAttribute(true)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
	Flags = SecurityPermissionFlag.Infrastructure)]
public class ProxyAttribute : Attribute, IContextAttribute

NombreDescripción
System_CAPS_pubmethodProxyAttribute()

Inicializa una nueva instancia de la clase ProxyAttribute con valores predeterminados.

NombreDescripción
System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute).

NombreDescripción
System_CAPS_pubmethodCreateInstance(Type)

Crea un sin inicializar MarshalByRefObject o un proxy transparente, dependiendo de si el tipo especificado puede existir en el contexto actual.

System_CAPS_pubmethodCreateProxy(ObjRef, Type, Object, Context)

Crea una instancia de un proxy remoto para un objeto remoto descrito por el objeto ObjRef, y se encuentra en el servidor.

System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute).

System_CAPS_pubmethodGetPropertiesForNewContext(IConstructionCallMessage)

Obtiene las propiedades para un nuevo contexto.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsContextOK(Context, IConstructionCallMessage)

Comprueba el contexto especificado.

System_CAPS_pubmethodIsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.(Heredado de Attribute).

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute).

Aplique el atributo actual a tipos que requieren a servidores proxy personalizados. Puede utilizar la clase ProxyAttribute para interceptar la new (New en Visual Basic) instrucción derivando de ProxyAttribute y colocando el atributo en un elemento secundario de ContextBoundObject. (Colocar el atributo proxy en un elemento secundario de MarshalByRefObject no es compatible.)

System_CAPS_noteNota

Esta clase realiza una petición de vínculo y una petición de herencia en el nivel de clase. Un SecurityException se produce cuando el llamador inmediato o la clase derivada no tiene permiso de infraestructura. Para obtener más información acerca de las peticiones de seguridad, consulte Link Demands y peticiones de herencia.

[AttributeUsage(AttributeTargets.Class)]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.Infrastructure)]
public class MyProxyAttribute : ProxyAttribute
{
   public MyProxyAttribute()
   {
   }
   // Create an instance of ServicedComponentProxy
   public override MarshalByRefObject CreateInstance(Type serverType)
   {  
      return base.CreateInstance(serverType);
   }
   public override RealProxy CreateProxy(ObjRef objRef1,
      Type serverType,
      object serverObject,
      Context serverContext)
   {
      MyProxy myCustomProxy = new MyProxy(serverType);
      if(serverContext != null)
      {
         RealProxy.SetStubData(myCustomProxy,serverContext);
      }
      if((!serverType.IsMarshalByRef)&&(serverContext == null))
      {
         throw new RemotingException("Bad Type for CreateProxy");
      }
      return myCustomProxy;
   }
}
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
[MyProxyAttribute]
public class CustomServer :ContextBoundObject
{
   public CustomServer()
   {
      Console.WriteLine("CustomServer Base Class constructor called");
   }
   public void HelloMethod(string str)
   {
      Console.WriteLine("HelloMethod of Server is invoked with message : " + str);
   }
}

SecurityPermission

For operating with infrastructure code. Demand value: F:System.Security.Permissions.SecurityAction.LinkDemand; Permission Value: F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure

SecurityPermission

For operating with infrastructure code. Demand value: F:System.Security.Permissions.SecurityAction.InheritanceDemand; Permission Value: F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: