Можно ли в Silverlight учитывать метод ToString () объекта домена, возвращаемого из вызова службы?

В нашем домене мы переопределяем метод ToString для всех наших типов доменов.

Однако при возврате этих объектов домена в ответ на запрос службы Silverlight функциональность ToString теряется. ToString () просто возвращает описание пространства имен объекта, импортированного из службы. Я предполагаю, что прокси-сервер домена, созданный ссылкой на службу, не включает логику ToString.

Можно ли заставить это работать без повторной реализации ToString на клиенте Silverlight?

Обновление: Кстати, это сделано для того, чтобы я мог выполнить привязку ко всему объекту и сохранить описание строки. У меня есть коллекция объектов домена, возвращаемых службой. Я хотел бы установить ItemsSource коллекции UI в список этих объектов домена, и мне не приходилось повторно создавать логику ToString локально.


person Jordan Parmer    schedule 25.06.2010    source источник
comment
Я предполагаю, что прокси-сервер домена, созданный ссылкой на службу, не включает никакой логики - разве это не простой сериализованный DTO - все данные, никакого поведения?   -  person Jay    schedule 25.06.2010
comment
@Jay - Да, просто сериализованный DTO. Я надеялся, что смогу найти ToString, чтобы упростить привязку, привязав к объекту в целом, вместо программного создания строк.   -  person Jordan Parmer    schedule 25.06.2010


Ответы (1)


Прокси-сервер не создает часть-член для контракта для метода ToString (), поскольку ToString () не является частью ServiceContract. Но не только это, я не уверен, что создаваемые прокси-классы разумно переопределяют Object.ToString () при их создании. Не могли бы вы добавить описательный метод, например GetDescription (), который будет создан в прокси?

Если нет, не могли бы вы просто переопределить метод в прокси (он должен быть сгенерирован как частичный) и предоставить реализацию для конкретного клиента?

person Matthew Abbott    schedule 25.06.2010
comment
Да, я могу переопределить это в клиенте, но у нас есть много объектов, к которым это нужно применить. Было бы немного больно иметь 30 объектов домена, определенных в красивом слое, а затем дублировать часть их логики на клиенте. Я надеялся, что ToString сработает, потому что это то, что привязка использует для отображения. Я хочу выполнить привязку ко всему объекту (для ItemsSource), и мне не нужно предоставлять шаблон данных для получения нужного мне строкового свойства (что может быть именно тем, что мне нужно сделать). - person Jordan Parmer; 25.06.2010