■ 자손 타입 리스트 구하기

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

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

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

Posted by 사용자 icodebroker

댓글을 달아 주세요