← C#

LESSON / ARTICLE

リフレクションと属性

実行時に型情報を調べるリフレクションと、メタデータを付与する属性を学びます。

リフレクション

リフレクションは、実行時に型・メソッド・プロパティなどの情報を調べる機能です。プラグインの読み込み、シリアライズ、テストフレームワークなどで利用されます。

Type type = typeof(DateTime);
Console.WriteLine(type.FullName);

foreach (var property in type.GetProperties())
{
    Console.WriteLine(property.Name);
}

属性

属性は、型やメンバーに追加のメタデータを付ける仕組みです。Attributeを継承した独自属性を作ることもできます。

注意点

リフレクションは通常の直接呼び出しより複雑で、実行時エラーや性能コストにつながる場合があります。外部入力で指定された型名やメソッド名を無条件に実行する設計は避け、許可リストとアクセス制御を設けてください。