Я создал службу Windows, размещенную в WCF, как описано здесь: http://msdn.microsoft. ru / en-us / library / ff649818.aspx

Интерфейс, используемый как ServiceContract, выглядит следующим образом:

[ServiceContract]
public interface IUIService
{
    [OperationContract]
    void MoveToPosition(double dblNum1, double dblNum2, double dblNum3);

    [OperationContract]
    void AutoFocus();

    [OperationContract]
    double GetStatus();

    [OperationContract]
    string ScanRegion(Point startPoint, Size size);
    [OperationContract]
    ImageData GetImage(string processId); 
}

Теперь проблема в том, что когда я вызываю метод из службы, скажем, ScanRegion из решения, которое имеет ссылку на службу хостинга службы выигрыша, ему требуются не System.Drawing.Point и System.Drawing.Size, а UIServiceReference.Point и UIServiceReference. Размер. И когда я перехожу к эталонному классу, я вижу, что есть полностью реализованные объекты соответствующих типов. Что случилось? А как исправить?

0
KorsaR 13 Авг 2014 в 21:24

1 ответ

Лучший ответ

Когда вы собираетесь добавить ссылку на службу в клиентскую программу, у вас должна быть ссылка на System.Drawing в проекте для клиента до того, как вы создадите ссылку на службу. Если этой ссылки там нет, он «создаст свой собственный», потому что ваш проект не знал о существовании System.Drawing, поэтому ему пришлось воссоздать свои собственные типы.

Если System.Drawing уже был частью проекта и по-прежнему создает свой собственный тип, проверьте расширенный экран для службы и убедитесь, что либо выбран вариант «Повторное использование типов во всех сборках, на которые есть ссылки», либо, если выбранные сборки выбраны, флажок для System.Drawing установлен.

enter image description here

2
Scott Chamberlain 13 Авг 2014 в 21:30
Благодарность! Сначала я снял этот флажок, потому что были проблемы с библиотеками. Теперь все работает нормально.
 – 
KorsaR
14 Авг 2014 в 01:01