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