Скажем, у меня есть немного кода:
public static void LoadSomething(Type t)
{
var t1 = Type.GetType(t.AssemblyQualifiedName);
var t2 = t
.Assembly
.GetTypes()
.First(ta => ta.AssemblyQualifiedName == t.AssemblyQualifiedName);
}
Что происходит, так это то, что t1 null, а t2 не null. Я был смущен, потому что, если я так называю это...
LoadSomething(typeof(SomeObject));
а затем ни не являются нулевыми, но то, что я на самом деле делаю, больше похоже на это (на самом деле это не упрощено, а иллюстрирует мою точку зрения):
LoadSomething(Assembly.LoadFile(@"C:\....dll").GetTypes().First());
Итак, первая часть моего вопроса (для моей информации)...
Во втором случае, поскольку сборка должна быть загружена, и я нашел тип из нее, почему Type.GetType
возвращает null?
И во-вторых (чтобы решить мою проблему)...
Есть ли другой способ загрузки типа, когда у меня есть только квалифицированное имя сборки как строка (которая, как я знаю, была ранее загружена с использованием методов Assembly.Load)?