リフレクションでインスタンスのプロパティを取得する

リフレクションを利用するときのメモ。instanceオブジェクトのプロパティ一覧を取得してから、プロパティの値を取得する方法。 取得対象はpublicなプロパティ。

[sourcecode language="csharp"]

var infoArray = instance.GetType().GetMembers(BindingFlags.Public | BindingFlags.Instance); foreach (var memberInfo in infoArray) { // プロパティのみを対象にする if (memberInfo.MemberType != MemberTypes.Property) continue;

// プロパティ名を取得する var propertyName = memberInfo.Name;

// オブジェクトの値を取得する var instanceValue = GetValue(instance, propertyName);

... } [/sourcecode]