■ PropertyInfo 클래스를 사용해 타입의 속성 정보 배열을 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using System; using System.Linq; using System.Reflection; /// <summary> /// 타입 확장 /// </summary> public static class TypeExtension { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Public #region 속성 정보 배열 구하기 - GetPropertyInfoArray(type, flag) /// <summary> /// 속성 정보 배열 구하기 /// </summary> /// <param name="type">타입</param> /// <param name="flag">바인딩 플래그</param> /// <returns>속성 정보 배열</returns> /// <remarks>타입이 클래스이면 해당 속성을 가져오고, 인터페이스인 경우 해당 속성과 상속된 모든 인터페이스의 속성을 가져온다.</remarks> public static PropertyInfo[] GetPropertyInfoArray(this Type type, BindingFlags flag) { return !type.IsInterface ? type.GetProperties(flag) : (new[] { type }).Concat(type.GetInterfaces()).SelectMany(i => i.GetProperties(flag)).ToArray(); } #endregion } |