■ PropertyInfo 클래스 : 타입의 속성 정보 배열 구하기

------------------------------------------------------------------------------------------------------------------------

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

}

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요