글 작성자: 써니루루

현재 회사(가온아이, Kaoni) 내에서 개발 진행중인 ezOcsNotice(OCS를 이용해 노티를 전송해주는 프로그램)을 제작하고 있다.

해당 프로그램은 동적으로 모듈들이 존재하고 각각의 모듈은 사용하지 않을땐 불필요하게 로드되게 되는 문제가 있다.

그래서 아래와 같이 Reflection을 이용해 DLL을 동적으로 이용해야 하는 문제가 생겼다...

클래스를
참조하지 않은 상태에서 외부의 DLL을 동적으로 로드해 클래스를 쓸 경우가 가끔씩 생기게 되는데..
 
그럴 때는 .NET의 Reflection(Java에서도 마찬가지로..) API 사용해서 클래스를 로드하고
해당 클래스의 인스턴스를 얻거나 메소드를 호출(Invoke)할 있다.
 
예로
다음 같이 사용하면 된다.


System.Reflection.Assembly assm =

System.Reflection.Assembly.LoadFile(@"D:AssembliesSomeAssembly.dll");

object obj = assm.CreateInstance("FullClassName");


단, 위와 같이 사용할 때 잘 안될때도 많다는..
'FullClassName' 부분을 잘 조절해야하는듯 하다.