본문 바로가기
프로그래밍/C#

Reflection : 객체 이름으로 객체 생성하기.

by 뽀도 2019. 7. 29.

Main 함수 

using System;
using System.Collections.Generic;
namespace Study
{
    class Program
    {
        static void Main(string[] args)
        {
            // IAnimal 리스트
            var list = new List<IAnimal>();
            
            // type.GetType 으로 Cat 객체 생성
            var animal = Type.GetType("Study.Cat");
            var cat = Activator.CreateInstance(animal) as Cat;
            cat.Name = "고양이";
            list.Add(cat);
            
            
            // type.GetType 으로 Dog 객체 생성
            animal = Type.GetType("Study.Dog");
            var dog = Activator.CreateInstance(animal) as Dog;
            dog.Name = "강아지";
            list.Add(dog);
            
            // 결과 출력
            foreach(var r in list)
            {
             	Console.WriteLine($" name : {r.Name}, Type : {r.GetType()}");
            }
        }
    }
}

 

IAnimal 인터페이스 

using System;
using System.Collections.Generic;
using System.Text;

namespace Study
{
    public interface IAnimal
    {
        string Name { get; set; }
    }
}

 

 IAnimal 자식 객체들

using System;
using System.Collections.Generic;
using System.Text;

namespace Study
{
	// 고양이
    public class Cat : IAnimal
    {
        public string Name { get; set; }
    }
	// 개
    public class Dog : IAnimal
    {
        public string Name { get; set; }
    }
}

 

실행 결과 

 

반응형

'프로그래밍 > C#' 카테고리의 다른 글

Dapper 사용시 key/explicitKey  (0) 2020.01.03
GetLocalIP()  (0) 2019.11.13
WCF 로그인 서버 공부 및 만들기  (0) 2019.06.03
Wcf : binding  (0) 2019.05.26
string , string builder 차이  (0) 2019.03.05

댓글