属性宣言へのパラメーターは定数式であり、コンパイル時に解決される必要があることを知っています。ただし、「コンパイル時間」の概念で遊ぶことはできますか? ASP.netには App_Code フォルダーという概念があります。アプリの実行中でも.csファイルをドロップできるように説明されており、取り込まれてコンパイルされます。このメカニズムを使用して、属性宣言で使用できる Enum または const 配列を動的に作成することは可能ですか?
[SomeAttribute(ValidTypes.SomeType)]
public class Foo
{
}
基本的に、それを参照するすべてのコンポーネントを再コンパイルすることなく、ValidTypes で有効な型を動的に拡張したいと考えています。そして、それをデータベース テーブルの値のリストと同期させる必要があります。それで、私の質問は、Enum または const 文字列配列の定義を含む .cs ファイルを App_Code にドロップして、自動的に表示させることはできますか? またはさらに良いことに、.Net がこれを行うために使用するメカニズムは、他の場所で呼び出すことができるので、ASP.Net アプリで行う必要はありませんか?