Как я могу сделать следующее с атрибутами c#. Ниже отрывок Java, который аннотирует параметры в конструкторе.
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;
}
}
От рассмотрения c# аннотации не похоже, что я могу аннотировать параметры. Действительно ли это возможно?
Вы можете абсолютно атрибутировать параметры:
public Factory([Inject("name")] String name, [Inject("value")] String value)
Конечно, атрибут должен быть объявлен, чтобы разрешить указать его для параметров через AttributeUsageAttribute (AttributeTargets.Parameter)
.
См. Примеры OutAttribute
и DefaultParameterValueAttribute
.
Создайте класс атрибута с AttributeUsageAttribute и другими, используйте Reflection для проверки параметров.
[System.AttributeUsage(System.AttributeTargets.All)]
class NewAttribute : System.Attribute { }