Как получить экземпляр класса Type
для типа, не определенного в текущей выполняемой сборке или в mscorlib.dll
?
a) А именно, я определил тип класса someType
в сборке CSharpSnapIn.dll
, расположенный в E:\CSharpSnapIn.dll
, но по какой-то причине при попытке указать абсолютный путь к этой сборке я получаю исключение:
Type t = Type.GetType("someType, E:\\CSharpSnapIn.dll"); // exeception
b) Я также попытался поместить CSharpSnapIn.dll
в каталог \bin\debug
запущенного в данный момент приложения, но я все еще получаю исключение:
Type t = Type.GetType("someType, CSharpSnapIn.dll"); // exeception
* 1016 спасибо *
EDIT:
1) Я объявил другой тип класса someType2
(внутри CsharpSnapIn.dll
), и на этот раз он работал:
Type.GetType("someType2, CSharpSnapIn");
Разница между someType
и someType2
заключается в том, что someType
реализует интерфейс, объявленный во внешней сборке asmIn
, но это не должно вызывать исключение, так как CsharpSnapIn.dll
имеет ссылку на asmIn
? !
2)
Обратите внимание, что сборка не требуется
быть загруженным первым, пока
распознаватель сборок может найти его
Другими словами, вызов Type.GetType()
сначала загружает сборку, а затем создает Type
экземпляр?
3) * * тысяча сорок-пять
Сборка должна быть найдена
зондирование, так что это должно быть в
каталог бина согласно вашей второй
пример. Если это сборка с
сильное имя, вы должны дать все
подробности.
То есть вы говорите, что мы не можем указать абсолютный путь (к сборке), используя Type.GetType()
, но вместо этого сборка должна находиться в каталоге bin
?