Почему собрание.GetType () не находит мой класс?
выдержка из кода:
var a = Assembly.LoadFile("MyAssembly.dll");
var t = a.GetType("MyNamespace.MyClass", false);
Debug.Assert(t != null); // fails
Assembly.LoadFile()
загрузка сборка без каких-либо проблем, но Assembly.GetType()
возвращает null, хотя я проверил это MyNamespace.MyClass
присутствует и правильно.
есть другие идеи, почему это происходит?
3 ответов
фактическая основная проблема заключалась в том, что MyAssembly.dll
имеет другую зависимость от OtherAssembly.dll
. Как только я включу ссылку на OtherAssembly.dll
в вызывающей сборке, все отлично работает.
// Retrieve all classes that are typeof SomeClassOrInterface
List<Type> myTypes = assembly.GetTypes().Where(typeof(SomeClassOrInterface).IsAssignableFrom).ToList();
// Loop thru them or just use Active.CreateInstance() of the type you need
myTypes.ForEach(myType => {
SomeClassOrInterface instance = Activator.CreateInstance(myType) as SomeClassOrInterface;
});
этот пример кода работает под .NET 4