Зернохранилище Orleans не может динамически загружать зерна из сборок, если я не загружу их сначала
Я пытаюсь изменить образец HelloWorld, чтобы иметь возможность загружать зерна / интерфейсы динамически, без явных зависимостей SiloHost. Однако я продолжаю получать ошибки, либо "Orleans.Runtime.OrleansConfigurationException: ни одна из сборок, добавленных в ApplicationPartManager, не содержит сгенерированный код. Убедитесь, что генерация кода была выполнена для интерфейса зерна и сборок классов.", Или если я пытаюсь добавить ".WithCodeGeneration"Я получаю ошибки FileNotFound, пытаясь загрузить библиотеки DLL.
Поэтому я добавил строку кода в начале основной функции Silo, которая явно загружала рассматриваемые библиотеки DLL, и в бинго все работало просто отлично - и да, зерно можно успешно создать и вызвать. Я изменил это, чтобы быть
foreach (var fn in System.IO.Directory.GetFiles(appDomainBase, "*.dll"))
System.Reflection.Assembly.LoadFrom(fn);
И это все еще работало просто отлично. Интересно, что когда я пытался использовать "LoadFile", он не работал.
Так есть ли вред, если оставить это здесь, и зачем это нужно?