Получить ссылку на DLL в удаленном приложении? - PullRequest
1 голос
/ 04 ноября 2011

У меня есть одно приложение ServiceStack с одним классом с именем Performance в этом приложении.

Теперь у меня есть другое приложение, которое используется моим конечным пользователем.Это консольное приложение, загружаемое конечным пользователем и запускаемое в качестве фоновой задачи.

Я хочу отправить данные о производительности из этого приложения в мой веб-сервис REST и сохранить их в базе данных.

Для этого мне нужно запустить это в моем клиентском приложении, которое отправляет данные о производительности в мое приложение ServieStack в формате JSON:

 JsonServiceClient client = new JsonServiceClient("http://localhost/RestIntro");
        var res = client.Post<Performance>("/Performance", c);

В моем клиентском приложении нет класса Performance.Я не хочу, чтобы у клиента был класс, чтобы я мог обновить всех клиентов, если мне нужно внести изменения.

Я хочу знать, как я могу получить класс Performance или его DLL вк моему клиентскому приложению динамически?Поэтому, когда клиент запускается, у него будет класс для отправки сообщения в веб-службу.

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Я рекомендую вам хранить DTO ваших ServiceStack веб-сервисов отдельно в проекте, не зависящем от зависимостей, поскольку именно это представляет собой контракт или API ваши услуги. Если он находится в собственной сборке, вы можете легко поделиться им с любым из ваших клиентов или модульных тестов и т. Д.

Если вам не нравится идея копировать dll вокруг (даже если это меньше работы / трения), вы можете сгенерировать свои собственные DTO из xsds на странице / метаданных, см. Этот вопрос:

Как преобразовать XSD-файл в класс C #

0 голосов
/ 04 ноября 2011

То, о чем вы говорите, фактически доступно с помощью службы SOAP. Или вам нужно создать класс «производительности» на клиенте и десериализовать результат JSON для этого класса.

...