아래소스는 Getter , DTO, VO 등 으로 불리우는 클래스의 Getter 필드값을
출력하는 겁니다. DOCS 등에서 가져와 붙여넣기 해서 좀 고친게 있긴 하지만…
그런데 실행해보면 method.invoke(T, obje~); 부분에서 Exception 이 나옵니다.
이부분은 != typeof(void) 이므로 getter 값을 출력하는 것인데 왜 예외오류가 나오는지
알고 싶습니다. 해당 Vo Class에서 getter 혹은 필드값을 반복문으로 호출할 수 있는 방법은
이것밖에 없는 건가요?
using System;
using System.Reflection;
namespace Vardump
{
public class Progrm
{
static void Main(string[] args)
{
Dd dd = new Dd();
dd.PropertyGet();
}
}
public class Dd
{
public void PropertyGet()
{
Type T = typeof(Vo);
PropertyInfo[] propInfos = T.GetProperties();
for(int i=0; i<propInfos.Length; i++)
{
PropertyInfo info = propInfos[i];
MethodInfo[] methods = info.GetAccessors(); // getter , setter
Console.WriteLine(">>>>" + info.Name);
for(int j = 0; j < methods.Length; j++)
{
MethodInfo method = methods[j];
if (method.ReturnType != typeof(void))
{
Console.WriteLine(">>>" + method.Invoke(T, new object[] {}));
}
}
}
}
}
}