¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

CallerMemberNameAttribute (Clase)

.NET Framework 4.6 and 4.5

Permite obtener el método o el nombre de propiedad del autor de llamada al método.

System.Object
  System.Attribute
    System.Runtime.CompilerServices.CallerMemberNameAttribute

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

[AttributeUsageAttribute(AttributeTargets.Parameter, Inherited = false)]
public sealed class CallerMemberNameAttribute : Attribute

El tipo CallerMemberNameAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsCallerMemberNameAttributeInicializa una nueva instancia de la clase CallerMemberNameAttribute.
Arriba

  NombreDescripción
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba

  NombreDescripción
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

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

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Se aplica el atributo de CallerMemberName a un parámetro opcional con un valor predeterminado. Debe especificar un valor predeterminado explícito para el parámetro opcional. No puede aplicar este atributo a los parámetros que no se especifican como opcionales.

Para obtener más información, vea Información del llamador (C# y Visual Basic).

Puede utilizar el atributo de CallerMemberName para evitar especificar el nombre de miembro como argumento de String al método denominado. Con esta técnica, evita el problema que Refactorización de cambio de nombre no cambia los valores de String. Esto es especialmente útil para las siguientes tareas:

  • Mediante el seguimiento y rutinas de diagnóstico.

  • Implementar la interfaz de INotifyPropertyChanged al enlazar datos. Esta interfaz permite que la propiedad de un objeto notifica un control enlazado que la propiedad ha cambiado, de forma que pueda mostrar información actualizada. Sin el atributo de CallerMemberName, debe especificar el nombre de propiedad como literales.

La tabla siguiente muestra los nombres de miembro que se devuelven cuando se utiliza el atributo CallerMemberName.

La llamada se encuentra

Resultado del nombre de miembro

Método, propiedad, o evento

El nombre del método, propiedad, o el evento del que la llamada se originó.

Constructor

La cadena “.ctor”

Constructor estático

La cadena “.cctor”

Un destructor

La cadena “Finalize”

Operadores definidos por el usuario o conversiones

El nombre generado para el miembro, por ejemplo, “op_Addition”.

Constructor del atributo

El nombre del miembro al que se aplica el atributo. Si el atributo es cualquier elemento dentro de un miembro (como un parámetro, un valor devuelto, o un parámetro de tipo genérico), el resultado es el nombre del miembro que está asociado a ese elemento.

Ningún miembro que contiene (por ejemplo, el nivel o los atributos aplicados a los tipos)

El valor predeterminado del parámetro opcional.

En el ejemplo siguiente se muestra cómo utilizar el atributo CallerMemberName. En cada llamada al método de TraceMessage, la información del llamador se usará como argumento al parámetro opcional.


// using System.Runtime.CompilerServices
// using System.Diagnostics;

public void DoProcessing()
{
    TraceMessage("Something happened.");
}

public void TraceMessage(string message,
        [CallerMemberName] string memberName = "",
        [CallerFilePath] string sourceFilePath = "",
        [CallerLineNumber] int sourceLineNumber = 0)
{
    Trace.WriteLine("message: " + message);
    Trace.WriteLine("member name: " + memberName);
    Trace.WriteLine("source file path: " + sourceFilePath);
    Trace.WriteLine("source line number: " + sourceLineNumber);
}

// Sample Output:
//  message: Something happened.
//  member name: DoProcessing
//  source file path: c:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoCS\CallerInfoCS\Form1.cs
//  source line number: 31


.NET Framework

Compatible con: 4.5

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft