2010-04-27 14 views
5

Come si può fare quanto segue con gli attributi C#. Di seguito è riportato un frammento di Java che annota i parametri in un costruttore.Attributi parametro in 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; 
    } 
} 

Dall'esame delle annotazioni C# non sembra possibile annotare i parametri. È possibile?

risposta

13

si può assolutamente attribuire parametri:

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

Naturalmente l'attributo deve essere dichiarato al permesso è da specificare per i parametri tramite AttributeUsageAttribute(AttributeTargets.Parameter).

Vedi OutAttribute e DefaultParameterValueAttribute come esempi.

+0

stavo scrivendo questo fuori! Sei troppo veloce per me = D – Tejs

1

Creare una classe di attributo con AttributeUsageAttribute e loro, utilizzare Reflection per ispezionare i parametri.

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

Accessing Attributes with Reflection