C# строковые аргументы в атрибутах
Можно ли как-то выдвинуть объявление строкового значения при использовании атрибута?
Конкретно у меня есть:
[WebGet(UriTemplate = "/myResource/{id}")]
Но я бы предпочел что-то вроде:
[WebGet(UriTemplate = AStaticDictionaryOrSomething["myResource"])]
Причина в том, что я хочу избежать дублирования значений uri без необходимости отражать класс с атрибутом WebGet. Поэтому я думаю, что самый простой способ - объявить значения uri в одном месте и сослаться на это из объявления атрибута и из других источников.
1 ответ
Решение
Объявите нужные вам строки как константы в новом классе или где-то еще и используйте их в качестве аргументов атрибута.
public class ResourceLibrary
{
public const string MyResource = "/myResource/{id}";
}
И используйте это так:
[WebGet(UriTemplate = ResourceLibrary.MyResource)]