Динамические параметры для атрибутов
Я знаю, что параметры объявлений атрибутов должны быть константным выражением и разрешаться во время компиляции. Однако могу ли я поиграть с понятием "время компиляции"? ASP.net имеет концепцию папки App_Code. Из его описания видно, что вы можете помещать в него файлы.cs, даже когда приложение работает, и оно будет загружено и скомпилировано. Можно ли использовать этот механизм для динамического создания массива Enum или const, который можно использовать в объявлении атрибута?
[SomeAttribute(ValidTypes.SomeType)]
public class Foo
{
}
По сути, я хочу динамически увеличивать допустимые типы в ValidTypes без необходимости перекомпиляции всех компонентов, которые на него ссылаются. И мне нужно синхронизировать его со списком значений в таблице базы данных. Итак, мой вопрос: могу ли я поместить файл.cs с определением массива строк Enum или const в App_Code и показать его автоматически? Или еще лучше: механизм.Net, используемый для этого, доступен для вызова в другом месте, поэтому мне не нужно делать это в приложении ASP.Net?
1 ответ
Даже если бы вы могли, вам придется перекомпилировать приложение, чтобы использовать добавленные значения. Похоже, что вы хотите, это код в атрибуте для поиска динамических значений.