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())
{
다음에 더 정리가되면 다시 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의 인덱스
방법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++); //해당겍체를 가져온다.
방법2
object obj = Activator.CreateInstance(stu, "진용", cnt++); //해당겍체를 가져온다.
MethodInfo mi = stu.GetMethod("Study"); //클래스의 Study 메소드를 가져온다.
mi.Invoke(obj, null); //가져온 해당 객체를 실행시킨다.
mi.Invoke(obj, null); //가져온 해당 객체를 실행시킨다.
'.NET > C#' 카테고리의 다른 글
윈도우 서비스 만들기 (0) | 2010.04.04 |
---|---|
ReadLine, Read, ReadKey (0) | 2010.04.03 |
Const Vs Readonly (0) | 2010.03.29 |
Sealed (0) | 2010.03.29 |
Sort메소드 (0) | 2010.03.28 |