クラスのオブジェクトからプロパティ名を取得してみます。
サンプルプログラム
class MyClassA
{
public string Name { get; set; } = "";
public int Value {get; set; } = 0;
}
class Program
{
static void Main()
{
// オブジェクトのプロパティ名の一覧を取得
var obj = new MyClassA()
{
Name = "JIM",
Value = 16,
};
Type type = obj.GetType();
foreach (var p in type.GetProperties())
{
Console.WriteLine($"名前:{p.Name} CanRead:{p.CanRead} CanWrite:{p.CanWrite} MemberType:{p.MemberType} {p.GetValue(obj)}");
}
}
}
結果
名前:Name CanRead:True CanWrite:True MemberType:Property JIM
名前:Value CanRead:True CanWrite:True MemberType:Property 16
GetValue()で値を取得出来るようなので、値も取得しました。
また、プロパティのsetを定義しないと、CanWriteがfalseになりました。
コメント