Если вам нужно динамически загрузить произвольные сборки и классы, вы можете использовать Assembly.Load
(или один из его вариантов) и Assembly.CreateInstance()
.
Причина, по которой вам нужно сделать это таким образом, заключается в том, что он допускает позднее связывание. Ссылка на сборку в GAC является сценарием раннего связывания и не может быть изменена как таковая во время выполнения.