첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170
using System;
using System.Collections.Generic;
using System.Reflection;

#region 자손 타입 리스트 구하기 - GetDescendentTypeList(parentType)

/// <summary>
/// 자손 타입 리스트 구하기
/// </summary>
/// <param name="parentType">부모 타입</param>
/// <returns>자손 타입 리스트</returns>
public List<Type> GetDescendentTypeList(Type parentType)
{
    TypeInfo parentTypeInfo = parentType.GetTypeInfo();

    Assembly assembly = parentTypeInfo.Assembly;

    List<Type> typeList = new List<Type>();

    foreach(Type type in assembly.ExportedTypes)
    {
        TypeInfo typeInfo = type.GetTypeInfo();

        if(typeInfo.IsPublic && parentTypeInfo.IsAssignableFrom(typeInfo))
        {
            typeList.Add(type);
        }
    }

    typeList.Sort((type1, type2) => { return string.Compare(type1.GetTypeInfo().Name, type2.GetTypeInfo().Name); });

    return typeList;
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요