В моем сценарии есть клиентская сборка, которая содержит класс (Task).
Этот класс реализует интерфейс (ITask), который известен на сервере.
Я пытаюсь отправить объект Task с клиента на сервер без копирования сборки клиента вручную на сервер.
Если я просто сериализую объект задачи, сервер, очевидно, жалуется на отсутствующую сборку.
Затем я попытался сериализовать typeof (Task). Assembly, но не смог выполнить его сериализацию на сервере.
Затем я попытался File.ReadAllBytes (typeof (Task) .Assembly.Location) и сохранил его во временный файл на сервере, что вызвало исключение для Assembly.LoadFrom (@ ". \ Временная.dll");
Почему я это делаю? Java RMI имеет удобную функцию для запроса реализации объекта, который получен посредством удаленного взаимодействия, но все еще "неизвестен" (эта JVM не имеет файла * .class). Это может быть использовано для вычислительного сервера, который просто знает интерфейс «задачи», содержащей метод run (), и загружает реализацию этого метода по требованию.
Таким образом, сервер не нужно менять для новых задач.
Я пытаюсь добиться чего-то подобного в .Net.