powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF, генерация классов на клиенте
14 сообщений из 14, страница 1 из 1
WCF, генерация классов на клиенте
    #39700985
yabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем здравствуйте
на сервере есть класс
Код: c#
1.
2.
3.
4.
5.
6.
[DataContract]
public class DataTransferClass
{
    [DataMember]
    public string Status { get; set; }
}


когда в студии делаешь "Create Service reference", на клиенте создается
такое
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
private string StatusField;

public string Status 
{
   get 
   {
      return this.StatusField;
   }
   set 
   {
      if ((object.ReferenceEquals(this.StatusField, value) != true)) 
      {
         this.StatusField = value;
         this.RaisePropertyChanged("Status");
      }
   }
}


Этот Status я привязываю к TextBox'у в WPF и хотел бы реагировать на изменения его значения.
Моя проблема, что метод propertyChanged вызывается даже тогда, когда Status остался неизвменным, т.к. поменялась ссылка.

Как заставить WCF генерировать Equals вместо ReferenceEquals?
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39701015
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yabs,
Я бы не мешал все в одну кучу.
Прокси классы генерируемые служать исключительно чтобы передать данные через сеть и геерогенную среду.
Т.е. полученные данные залить в Модель по стандарту MVVP например.
А там уже твои события.
Кроме того, прокси классы могут быть в Африке и менятся другой информационной системой.
Это объекты сервиса сервера.
Нельзя привязывать к ГУИ.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39701302
yabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

толика смысла в твоих словах конечно есть
но прокси-классы генерируются тут же у меня на коленке ))
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39701314
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yabsно прокси-классы генерируются тут же у меня на коленке ))но забирается описание из Африки).
Прокси служит чтобы передать инфу.
Всё.
Я вообще не понял нафига там события генерируются.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39701394
yabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

да никакой не из Африки. WCF-сервис мой же.

события, я так понимаю, как раз для WPF и создаются
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39701407
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yabsPetro123,

да никакой не из Африки. WCF-сервис мой же.

события, я так понимаю, как раз для WPF и создаются
И у меня тоже мой. Только у меня в сети, а не там гле клиент.
...
Вот упрямый. У тебя модель это прокси классы?
Ну и делай. Зачем тебя уговаривать.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39711080
Фотография Renziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yabs,
Если речь идет о байндинге, то сгенерировано все верно. Для справки, такую генерацию дает ключ /edb для SLSvcUtil.exe и другого ключа просто нет (автоматическое генерирование прокси основано ни на чем, кроме как SLSvcUtil.exe ).
WPF прибайндивает к экземпляру класса, а не к его содержимому. Строка - иммютэбл обьект и основываясь только на содержимом строки, вы потеряете байндинг, когда строка та же самая, но экземпляры строки разные.

Пересмотрите свою бизнес логику с учетом этого - это единственно, что можно сделать с моей точки зрения.
Например, прибандивайте к другому члену класса, используя ковертер, а в конвертере анализируйте данную строку.
Или на клиенте расширте класс новым членои класса с аналогичным подходом. Как-то так.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39711109
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenziglovПересмотрите свою бизнес логику с учетом этого - это единственно, что можно сделать с моей точки зрения.
Например, прибандивайте к другому члену класса, используя ковертер, а в конвертере анализируйте данную строку.
Или на клиенте расширте класс новым членои класса с аналогичным подходом. Как-то так.
другими словами - не надо делать биндинг к прокси классам АвтоГенерируемым на клиенте.
Я так понял ваши слова.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39711161
Фотография Renziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
>Я так понял ваши слова.
Вы неправильно поняли мои слова.

Речь идет о строке. Если вы присваиваете строке "сон", сгенерированный тригер срабатывает. Строка изменилась. Затем вы присваиваете "слон": сгенерированный тригер срабатывает. Строка изменилась. Если вы опять присвоите "слон" той же строке, тригер может сработать, а может и нет, все зависит от контекста. Например,
s+=''; вызовет срабатывание, поскольку будет создана новая трока в памяти с тем же значением. А
s=String.Concat(s, ''); не вызовет.

Yabs хочет, чтоб ничего не срабатывало, ведь он опирается только на значение строки (значение то же), а не на обьект, который ее хранит (объект другой).

Микрософт делает правильно, что проверяет объект, а не значение. Лучше перебдеть, чем недобдеть и пропустить событие.
Под это и надо подстраиваться.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39711191
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenziglovВы неправильно поняли мои слова.тут смешан вопрос:
"Метод - равенество классов на значении а не по ссылке Value Equality"
и
"Правильная работа со сгенерированными классами"
ТСкогда в студии делаешь "Create Service reference", на клиенте создается
такое
моё мнение что пусть в своих классах делает событие хоть по указателю-ссылке, хоть по значению(набор букв).
Зависит от бизнес логики.
А вот по поводу прокси классов(вы промолчали про них) я сказал что пусть их не трогает.
Ну или "ваше" - конвертер оттуда данных в свою Модель и свои классы.
Т.е. класс А прокси и пусть делает класс Б, но уже свой клиентский.
А там, как хочет. Хоть переопределяет Equals.
IMHO
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39711229
Фотография Renziglov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

>Хоть переопределяет Equals.
Он ничего не может переопределить. При следующем обновлении ссылок на клиентской стороне все его переопределения исчезнут.
В загловках этих автоматически сгенерированных файлов так прямо об этом и говорится.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39711308
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenziglovPetro123,

>Хоть переопределяет Equals.
Он ничего не может переопределить. При следующем обновлении ссылок на клиентской стороне все его переопределения исчезнут.
В загловках этих автоматически сгенерированных файлов так прямо об этом и говорится.я тебе три раза об этом сказал. Переопределить на своем классе и не трогать прокси класс.
Тот что обновляется при обновлении ссылки называется прокси класс.
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39741362
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123yabs,
Я бы не мешал все в одну кучу.
Прокси классы генерируемые служать исключительно чтобы передать данные через сеть и геерогенную среду.
Т.е. полученные данные залить в Модель по стандарту MVVP например.
А там уже твои события.
Кроме того, прокси классы могут быть в Африке и менятся другой информационной системой.
Это объекты сервиса сервера.
Нельзя привязывать к ГУИ.

"геерогенную среда" - Пётр123, ты становишься опасным
...
Рейтинг: 0 / 0
WCF, генерация классов на клиенте
    #39741380
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

))) моя Т9 на сотовом окапечаталась по Фрейду)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF, генерация классов на клиенте
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]