0

属性宣言へのパラメーターは定数式であり、コンパイル時に解決される必要があることを知っています。ただし、「コンパイル時間」の概念で遊ぶことはできますか? ASP.netには App_Code フォルダーという概念があります。アプリの実行中でも.csファイルをドロップできるように説明されており、取り込まれてコンパイルされます。このメカニズムを使用して、属性宣言で使用できる Enum または const 配列を動的に作成することは可能ですか?

[SomeAttribute(ValidTypes.SomeType)]
public class Foo
{
}

基本的に、それを参照するすべてのコンポーネントを再コンパイルすることなく、ValidTypes で有効な型を動的に拡張したいと考えています。そして、それをデータベース テーブルの値のリストと同期させる必要があります。それで、私の質問は、Enum または const 文字列配列の定義を含む .cs ファイルを App_Code にドロップして、自動的に表示させることはできますか? またはさらに良いことに、.Net がこれを行うために使用するメカニズムは、他の場所で呼び出すことができるので、ASP.Net アプリで行う必要はありませんか?

4

1 に答える 1

0

可能であっても、追加された値を使用するには、アプリを再コンパイルする必要があります。動的な値を検索するための属性のコード必要なように聞こえます。

于 2010-09-28T16:49:27.763 に答える