.dll에서 유형을 유도하려고합니다 (실행 프로젝트에서도 참조 됨). 내가 전화 :assembly.GetTypes()가 모든 유형을 반환하지 않습니다.
public static void LoadPlugin(string pluginFile)
{
Assembly assembly = Assembly.LoadFrom(pluginFile);
foreach (Type type in assembly.GetTypes())
{
// play with it
}
}
이의 그들 중 몇로드 :
public partial class Mathematics : UserControl, IMathematics, IPortable
및
public partial class Welcome : UserControl
하지만 다음 하나, 일부 다른 사람을 무시됩니다
public partial class Test : UserControl, ITest, IPortable
그들은 모두 같은 어셈블리에 있습니다. ame 네임 스페이스. public static void LoadPlugin(string pluginFile)
메서드는 실행중인 프로젝트에서도 참조되는 다른 어셈블리에 있습니다.
예외가 발생하지 않습니다. 모든 유형을로드하지 않는 문제는 무엇입니까? 어떤 아이디어?
GetTypes()가 어셈블리에 정의 된 모든 PUBLIC 클래스를 반환하지 않고 둘 다 Export 특성을 가지고 있기 때문에 비슷한 문제가 발생합니다. 나는 그것이 우연인지 또는 무엇인지는 모르지만 인터페이스를 구현하는 유형은 인터페이스를 구현하지 않는 유형은보고되지 않는 반면 인터페이스는 구현되지 않습니다. –