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)]
Другие вопросы по тегам