c # строковые аргументы в атрибутах - PullRequest
2 голосов
/ 12 декабря 2011

Можно ли как-то выдвинуть объявление строкового значения при использовании атрибута?

В частности, у меня есть:

[WebGet(UriTemplate = "/myResource/{id}")]

Но я бы предпочел что-то вроде:

[WebGet(UriTemplate = AStaticDictionaryOrSomething["myResource"])]

Причина в том, что я хочу избежать дублирования значений uri без необходимости отражать класс с атрибутом WebGet. Поэтому я думаю, что проще всего было бы объявить значения uri в одном месте и сослаться на это из объявления атрибута и из других источников.

1 Ответ

3 голосов
/ 12 декабря 2011

Объявите нужные вам строки в качестве констант в новом классе или где-либо еще и используйте их в качестве аргументов атрибута

public class ResourceLibrary
{
     public const string MyResource  = "/myResource/{id}";
}

И используйте это так:

[WebGet(UriTemplate = ResourceLibrary.MyResource)]
...