クラスに定義されているメソッドを取得する

まずはtypeofを使ってインスタンスを作成したクラスを取得します。

using System;// Type型に必要
using System.Reflection;// MeshodInfo型とかに必要

Type type = typeof(T);// Tは調べたいクラス

Type type = this.GetType();// 自分自身のクラスを取得するにはこっち

取得したクラスからメソッドを探して、MethodInfo型に入れます。該当するメソッドが無い場合はnullが返ります。

MethodInfo method = type.GetMethod("-メソッド名-");

GetMethods()でメソッドをMethodInfo型の配列でまとめて取得できます。MethodInfo型はNameプロパティでメソッド名を文字列で取得できまので、メソッドの名前一覧なども作成できます。

取得したメソッドを使う

MethodInfo型で取得したメソッドは、Invokeメソッドで使用することができます。メソッドをもったクラスのインスタンスを第一引数、メソッドに渡す引数を第二引数にします(Object型の配列)。なければnull。

 
method.Invoke(this, null);

クラスに定義されているプロパティを取得する

先にPropertyInfo型をGetPropertyで取得します。それからPropertyInfoからGetメソッドとSetメソッドを取得します。メソッドの使い方は上記メソッドと同じです。

Type type = this.GetType();// クラスを取得

PropertyInfo property = type.GetProperty("-プロパティ名-");// プロパティを取得

MethodInfo getter = property.GetGetMethod();// Getメソッドを取得
MethodInfo setter = property.GetSetMethod();// Setメソッドを取得

getter.Invoke(this, null);// Getメソッドを実行
setter.Invoke(this, null);// Setメソッドを実行