2010-04-27 14 views
5

¿Cómo puedo hacer lo siguiente con los atributos C#. A continuación se muestra un fragmento de Java que anota parámetros en un constructor.Atributos del parámetro en C#

public class Factory { 
    private final String name; 
    private final String value; 
    public Factory(@Inject("name") String name, @Inject("value") String value) { 
     this.name = name; 
     this.value = value; 
    } 
} 

Al observar las anotaciones de C#, parece que no puedo anotar los parámetros. es posible?

Respuesta

13

Usted puede atribuir absolutamente parámetros:

public Factory([Inject("name")] String name, [Inject("value")] String value) 

Por supuesto que el atributo tiene que ser declarado a permiso para especificar los parámetros a través de AttributeUsageAttribute(AttributeTargets.Parameter).

Ver OutAttribute y DefaultParameterValueAttribute como ejemplos.

+0

yo estaba solo escribir esto! Eres demasiado rápido para mí = D – Tejs

1

Cree una clase de atributo con AttributeUsageAttribute y ellos, use Reflection para inspeccionar los parámetros.

[System.AttributeUsage(System.AttributeTargets.All)] 
class NewAttribute : System.Attribute { } 

Accessing Attributes with Reflection

Cuestiones relacionadas