none
특정 네임스페이스 안에 있는 클래스들 목록을 알 수 있을까요? RRS feed

  • 질문

  • 카드 게임을 예로 들어 보겠습니다.

    BaseCard 라는 부모 클래스에서 상속을 받아 매우 다양한 카드들을 각각 클래스로 만들었습니다.

    namespace Card
    {
        class MagicianCard : BaseCard { }
        class HealerCard : BaseCard { }
        class WarriorCard : BaseCard { }
    }
    
    Dictionary<string, BaseCard> cardDataList = Dictionary<string, BaseCard>();
    void CreateCards()
    {
        var card = new MagicianCard();
        cardDataList.Add(card .GetType().Name, card );
        card = new HealerCard();
        cardDataList.Add(card.GetType().Name, card );
        card = new HealerCard();
        cardDataList.Add(card.GetType().Name, card );     
    }

    간단하게 말하자면 이런 식인데, 서비스를 하다 보면 계속해서 새로운 카드들이 추가되고 각 카드 별 클래스와 함께 늘어난 카드들을 일일이 리스트에 추가해 줘야 합니다.

    제가 원하는 건 요걸 자동화 하는 건데요.

    클래스 안에 존재하는 메소드나 필드들을 type.GetMethods() 와 type.GetFields() 등으로 가져올 수 있는 것처럼 namespace 로 묶여 있는 클래스 들의 이름도 가져올 수 있다면 해당 네임스페이스로 클래스만 만들어 두면 자동으로 인스턴스 생성까지 처리 될테니 코드도 깔끔해지고 실수도 줄일 수 있을 것 같아서요.

    좋은 방법이 없을지 조언 부탁 드립니다.


    • 편집됨 Amagoon 2019년 10월 23일 수요일 오전 3:15
    2019년 10월 23일 수요일 오전 3:14

모든 응답

  • 네임 스페이스 아래에 있는 모든 유형의 클래스를 비교하고 추가 할 클래스를 찾을 수 있습니다.

    How can I get all classes within a namespace?

    그다음 클래스를 다이나믹으로 만들어야 합니다.

    How to dynamically create a class?

    도움이 되었으면 합니다.

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2019년 10월 23일 수요일 오전 9:35
    중재자