2008-10-07 9 views
2

런타임에 클래스의 인스턴스를 만들려고합니다. 모든 클래스를 만들려고하는데 ConfigMgrObj라는 기본 클래스에서 상속받으며 ConfigMgr_xxxxxx이라는 이름으로되어 있습니다. ConfigMgr_Collection. 그들은 모두 oController와 문자열을 인수로 사용하는 특수 객체를 사용합니다.클래스 이름에서 인스턴스 만들기

이것은 내가 사용하고있는 행입니다. ClassToGet은 클래스 이름이 들어있는 문자열입니다. 예 : ConfigMgr_Collection.

object oNewObject = System.Activator.CreateInstance(null, "StackOverflowNamespace." + ClassToGet, new object[] { oController, ClassToGet }); 

이 경우 TypeLoadException 예외가 발생합니다. 그게 뭐야?

+0

질문을 확장 할 수 있습니까,로드 된 형식을 포함하는 어셈블리입니까? –

답변

6

인스턴스화하려는 유형이 실제로 동일한 어셈블리 내에서 선언 되었습니까? 첫 번째 매개 변수로 null을 전달하면 Activator에 유형이 현재 어셈블리에 있음을 알립니다.

+0

젠장, 그게 다예요. GUI에서이 작업을하고 있다는 것을 잊었습니다. 동일한 네임 스페이스이지만 다른 어셈블리에있는 모든 것들을 가지고 있습니다. 내 어리 석음을 줄이기 위해 답을 받아 들여야합니다. – Merus

0

현재 어셈블리에 "StackOverflowNamespace."+ClassToGet이라는 클래스가없는 것 같습니다.

관련 문제