Могут ли методы контракта WCF вернуть ноль? - PullRequest
2 голосов
/ 07 октября 2009

У меня есть многомерная коллекция фиксированного размера, предоставляемая через контракт WCF, и я хочу иметь возможность возвращать ноль для любых координат в коллекции, которые не были заполнены. Когда я пытаюсь это сделать, я получаю исключение, указывающее, что это не поддерживается: «FaultException`1: ссылка на объект не установлена ​​на экземпляр объекта.»

Интересно, можно ли использовать какой-нибудь флаг OperationContract, но ни один из них не выделяется.

Возможно ли то, что я хочу, или есть какие-то внутренние ограничения в WCF?

Спасибо

Ответы [ 3 ]

5 голосов
/ 07 октября 2009

В WCF ничто не мешает вам вернуть ноль из любого метода контракта операции.

Исключением, которое вы получаете, является FaultException<NullReferenceException>, что означает, что где-то в вашем коде на стороне сервера вы ссылаетесь на объект, для которого установлено значение null. Проверьте код на стороне сервера.

3 голосов
/ 07 октября 2009

Да, они могут, мой делать все время. Не могли бы вы опубликовать соответствующие фрагменты вашего контракта на обслуживание и / или контрактов на передачу данных, чтобы мы могли увидеть, где может быть проблема?

1 голос
/ 08 октября 2009

Как заявили и Гарт, и Кристиан, вы действительно можете вернуть null из методов контракта WCF. На самом деле я был пойман моей собственной (попыткой) хитростью, когда внешний (контрактный) тип был преобразован из внутреннего типа через оператор неявного преобразования, в рамках реализации которого свойства внутреннего типа были доступны в качестве аргументов конструктора внешнего типа. Отсюда NullReferenceException.

Doh! мне. Cred to G & C. Гарт получает «принять» за волосы, так как чтение его дало мне момент лампочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...