У меня есть служба WCF, написанная в vs2010, на которую ссылается и которую использует клиент, который должен быть написан в vs2008 из-за проблемы со спецификацией поставщика SDK (клиент предназначен для сканера штрих-кода, и их SDK работает только с vs2008).
Функция WCF 2010 возвращает логическое значение.
Клиент, потому что он написан в 2008 году, вызывает метод следующим образом: methodName([complex_serializable_contract_type],
[byref return_area as boolean],
[byref return_area_specified as boolean])
Когда мое клиентское приложение вызывает этот метод, я получаю сообщение IndexOutOfRangeException
.
Когда тип возвращаемого значения boolean изменяется на целое число, возникает то же самое исключение.
Когда возвращаемый тип удален, метод работает нормально (за исключением того, что мой клиент не получает подтверждения).
У службы есть другие функции, в которых возвращаемый тип является сложным типом (массив контрактных типов) и работает нормально.
Я слышал, что wcf не может обрабатывать определенные типы, которые не сериализуемы, но это первый раз, когда я столкнулся с проблемой, когда примитивные типы вызывают проблему, особенно потому, что я вызываю метод с «указанным» аргумент для обработки сделки .net 1.1 с примитивами, которым не разрешено иметь значение null или что-то в этом роде.
Любая помощь приветствуется, спасибо.