Activator 를 이용한 Type Instance 생성

 

이러한 표현을 하고 싶을 때가 있다

public void setType( Class TTT)

{

var t = new TTT(...);

t.a = 123;

t.b = "azc";

}

 

하지만 C# 에서 위와 같은 표현은 허락 하지 않는다.

 

현제

로컬 DB 라이브러리를 만들고 있다. 불러들일 로컬 DB의 Column 을 개발자는 미리 알고 있지만 생성기를 통하지 않고서는

각 로우에 맞는 클래스를 자동으로 만들어 주지는 않는다.

그래서 위와 같은 표현이 아쉬운것이다. TTT 라는 클래스에 DB의 테이블에 맞는 클래스를 작성한다음 활용 하면 좋은데..

 

그래서 아래와 같은 방법을 생각했다. 가능하다. 하지만 많은 UnBoxing 과 리플렉션이 사용됨으로 사용횟수에 따라

성능차이가 날것이다.

 

 

 
//

            Type type = typeof(TEST);
            var inst = Activator.CreateInstance(type);

            PropertyInfo info = type.GetProperty("TestProperty1");
            info.SetValue(inst, "testname123", null);

            //결과 확인
            Console.WriteLine(((TEST)inst).TestProperty1);

'C#' 카테고리의 다른 글

[SQL2012] DB 생성부터 사용자 만들기 그리고 SQL 접속하기  (4) 2013.01.14
sqlMetal 사용법  (10) 2013.01.11
Activator 를 이용한 Type Instance 생성  (32) 2012.12.29
[Broadcast Video Streaming]  (149) 2012.11.27
[Tcp] 연속적인 정보를 송출시 유의점  (91) 2012.11.04
[MEMO]  (58) 2012.10.14
Yamecoder 야매코더_
C# 2012.12.29 22:41
Powerd by Tistory, designed by criuce
rss