클래스 라이브러리에 몇 개의 클래스가 있습니다 (별도의 어셈블리). 내 프로젝트에 그것을 참조하고 해당 라이브러리에서 하나의 특정 클래스를 초기화하고 싶습니다. 나는 그 이름 만 알고있다. 모든 클래스는 하나의 인터페이스를 구현합니다. 그리고 여기에 문제가 있습니다. 지금까지라이브러리에서 하나의 클래스를 초기화하는 방법은 무엇입니까?
내 코드 :
using MyLibrary;
...
IMyInterface dll = Activator.CreateInstance("MyLibrary", "MyLibrary.NameOfClass") as IMyInterface;
그러나 DLL은 항상 null입니다. 아이디어가 있으십니까?
감사
UPDATE는
나는 도서관에 대한 참조를 제거하고 해당 코드를 다시 작성 :
Assembly a = Assembly.Load("MyLibrary");
Type type = a.GetType("MyLibrary.SKClass");
IMyInterface obj = Activator.CreateInstance(type) as IMyInterface;
하지만 OBJ null입니다.
a.GetExportedTypes()를 사용하여 라이브러리 유형을 검사하면 SKClass가 있습니다. 그렇다면이 코드는 여전히 null을 반환하는 이유는 무엇입니까?
시도 부분은 "이 오류가 발생합니다 같은 캐스트가 누락되어 있는지 여부를 확인합니다.이 작동하고 –
시도 "Activator.CreateInstance로 ("MyLibrary를 ","NameOfClass) ""로 ". – daemon