[Asp.netベース]Attributeプロパティメモ

4427 ワード

Attributeって何?


Attributeは、ユーザが自由に定義できるモディファイアであり、様々な修飾が必要なターゲットを修飾するために使用することができる.簡単に言えば、Attributeはカキが船底や礁に吸着しているような「付着物」です.これらの付着物の役割は、付着物の体内に保存されている追加の情報(これらの情報は付着物の体内に保存されている)を追加することです.例えば、「このクラスは私が書いた」とか、「この関数は以前問題があった」などです.

Attributeの役割


特性Attributeの役割は
メタデータを追加します.
メタデータは、コンパイラがメタデータでコンパイルを支援し、デバッガがメタデータでプログラムをデバッグするなど、ツールでサポートできます.

個人的な理解


注釈は人に書いたものだ.Attributeはプログラムに書いたものですあるオブジェクトにコメントを付け、実行時に反射することでこのコメントを得ることができる.いくつかの操作を行う.
[Name("   ","   "),Name("   ","Nic")]
        public class Student { }
public class School {
[Name("   ", "   "), Name("   ", "Nic")]
            public string schoolname { get{return "    ";} }
        }
[AttributeUsage(AttributeTargets.All,AllowMultiple=true)]
    public class Name:System.Attribute
    {
        public string Key { get; set; }
        public string Value { get; set; }
        public Name(string key, string value) {
            Key = key;
            Value = value;
        }
    }
//      
            var attrs= Attribute.GetCustomAttributes(typeof(Student));
            Response.Write("<br>");
            Response.Write("     ");
            foreach (var item in attrs)
            {
                var t=(Name)item;
                Response.Write("<br>");
                Response.Write((t).Key+" : "+t.Value+" , "+t.TypeId.ToString());
            }
//       .       ,   ,        
            var Properties = typeof(School).GetProperties();
            Response.Write("<br>"); Response.Write("<br>");
            Response.Write("      ");
            foreach (var item in Properties)
            {
                foreach (var attr in item.GetCustomAttributes(false))
                {
                    var t = (Name)attr;
                    Response.Write("<br>");
                    Response.Write((t).Key + " : " + t.Value + " , " + t.TypeId.ToString());
                }
            }

そうですか.実行中にNameクラスのインスタンスを取得しました.Nameのプロパティが出力されました