2010. 3. 31. 10:45
리플렉션을 어설프게 이해해서 제대로 정리하지는못했다 -_-
다음에 더 정리가되면 다시 2탄을 올리도록하겠다.

1.
네임스페이스 리플렉션 ( System.Reflection ) 에 있는  Assembly 클래스를 이용한다.
 Assembly asm = Assembly.Load("SB");  SB.dll 파일을 로딩한다.

2.
해당 파일에 있는 네임스페이스명.클래스명을 불러온다.
Type type = asm.GetType("asem.SB");


아래와 같이해서 가져올 네임스페이스명과 클래스명을 알 수 있다.
foreach(Type i in asm.GetType())
{
Console.WriteLine(i.FullName)  
}

방법1

해당 클래스에서 프로퍼티를 가져온다.
해당 프로퍼티에서는 get으로 객체를 반환해준다.
GetValue를 통해 PropertyInfo에 있는 가져온 프로퍼티 값을 object에 넣어준다.

            PropertyInfo pi = type.GetProperty("sb");  
            object o = pi.GetValue(null, null); //첫번째 : obecjt  두번째 : 가져올 object의 인덱스
                                                           
이렇게 해서 해당 객체를 실행시킬 수 있다.

방법2

object obj = Activator.CreateInstance(stu, "진용", cnt++);  //해당겍체를 가져온다.
            MethodInfo mi =  stu.GetMethod("Study");          //클래스의 Study 메소드를 가져온다.
            mi.Invoke(obj, null);                                        //가져온 해당 객체를 실행시킨다.

'.NET > C#' 카테고리의 다른 글

윈도우 서비스 만들기  (0) 2010.04.04
ReadLine, Read, ReadKey  (0) 2010.04.03
어셈블리 동적 로딩  (0) 2010.03.31
Const Vs Readonly  (0) 2010.03.29
Sealed  (0) 2010.03.29
Sort메소드  (0) 2010.03.28
Posted by 아몰라

댓글을 달아 주세요

이전버튼 1 2 3 4 5 6 7 8 ··· 14 이전버튼