6

それらはクラスメソッドまたはインスタンス化されたメソッドに保存されていますか? それとも両方ですか?私は本当に説明を探していますが、多くの調査の結果、明確な答えにたどり着くことができませんでした。

ありがとう

4

4 に答える 4

1

要するに、それらは に格納されます。これは の属性ILの例であり、IL 逆アセンブラーを使用して表示されます。 [Serializable]ILここに画像の説明を入力

于 2013-10-13T12:23:00.693 に答える
1

コメントでknittlがコメントしたように(これは正しい)、このMSDNを確認できます:

.NET Framework では、コンパイル済みファイルで属性と呼ばれる特定の種類のメタデータを宣言できます。属性は .NET Framework 全体に存在し、実行時のプログラムの動作をより詳細に制御するために使用されます。さらに、ユーザー定義のカスタム属性を使用して、独自のカスタム メタデータを .NET Framework ファイルに出力できます。詳細については、属性を使用したメタデータの拡張を参照してください。

ドキュメントから(CLI パーティション II - メタデータとファイル形式 (word/pdf zip)) :-

型とそのメンバーの属性は、それらの定義に説明的な情報を付加します。最も一般的な属性は事前定義されており、それらに関連付けられたメタデータに特定のエンコーディングがあります (§23)。さらに、メタデータは、いくつかの異なるエンコーディングを使用して、ユーザー定義の属性をメタデータに添付する方法を提供します。

MSDNから:

Type クラスのメンバーを使用して、渡されたクラスの個々のメソッドとメンバーを取得できます。この例では、最初に Type オブジェクトをクエリして、クラス レベルの属性情報を取得します。次に、Type.GetMethods を使用してすべてのメソッドのインスタンスを System.Reflection.MemberInfo オブジェクトの配列に配置し、メソッド レベルの属性情報を取得します。Type.GetProperties メソッドを使用してプロパティ レベルで属性を確認するか、Type.GetConstructors を使用してコンストラクター レベルで属性を確認することもできます。

于 2013-10-13T11:31:28.017 に答える