[C#/.NET] 네임스페이스(Namespace) 내의 클래스(Class) 들을 동적으로 생성하는 방법
본문 바로가기
프로그래밍/C++ \ C#

[C#/.NET] 네임스페이스(Namespace) 내의 클래스(Class) 들을 동적으로 생성하는 방법

by [아마군] 2019. 10. 23.
반응형

특정 네임스페이스(Namespace) 로 묶여 있는 다수의 클래스 들을 미리 한번에 생성해야 하는 경우가 있다.

 

예를 들어 다양한 음식 메뉴들을 보여줘야 하는 경우 각각 Food 클래스에서 상속받은 각 음식들을 앱이 실행되는 순간 미리 객체를 생성한다고 하자.

 

간단하게 아래와 같이 구현할 수 있을 것이다.

 

보는 바와 같이 Card 라는 네임스페이스 하의 클래스들 마다 인스턴스를 생성해 줘야 한다.

 

그런데 서비스를 하다 보면 앞으로 무수히 많은 카드 클래스들이 계속해서 추가 될 것이다.

 

이렇게 카드 클래스가 추가 되면 그때마다 해당 카드의 인스턴스를 생성하는 코드를 하드 코딩으로 입력해야 하며 만약 카드 클래스의 종류가 수십 수백개나 된다면 노가다 및 가독성, 실수 가능성 등이 더욱 부각될 것이다.

 

이를 자동화 하여 Card 라는 네임스페이스에 속해 있는 클래스들 중 이름이 "Card_" 로 시작하는 클래스를 추려서 자동으로 인스턴스를 생성하는 코드를 작성해 보았다.

 

매우 간단하게 구현이 가능하다.

 

AppDomain 의 assembly 를 통해 앱에 존재하는 클래스들의 타입으로 네임스페이스와 클래스 이름을 가져올 수 있다.

 

원하는 조건에 맞는 클래스 들을 추려내어 생성해 주면 앞으로 클래스가 늘어날 경우 프로젝트에 해당 클래스만 추가해 주면 알아서 생성이 될 것이다.

반응형

댓글