|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
всем здравствуйте на сервере есть класс Код: c# 1. 2. 3. 4. 5. 6.
когда в студии делаешь "Create Service reference", на клиенте создается такое Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Этот Status я привязываю к TextBox'у в WPF и хотел бы реагировать на изменения его значения. Моя проблема, что метод propertyChanged вызывается даже тогда, когда Status остался неизвменным, т.к. поменялась ссылка. Как заставить WCF генерировать Equals вместо ReferenceEquals? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 16:14 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
yabs, Я бы не мешал все в одну кучу. Прокси классы генерируемые служать исключительно чтобы передать данные через сеть и геерогенную среду. Т.е. полученные данные залить в Модель по стандарту MVVP например. А там уже твои события. Кроме того, прокси классы могут быть в Африке и менятся другой информационной системой. Это объекты сервиса сервера. Нельзя привязывать к ГУИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 17:25 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
Petro123, толика смысла в твоих словах конечно есть но прокси-классы генерируются тут же у меня на коленке )) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 10:33 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
yabsно прокси-классы генерируются тут же у меня на коленке ))но забирается описание из Африки). Прокси служит чтобы передать инфу. Всё. Я вообще не понял нафига там события генерируются. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 10:42 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
Petro123, да никакой не из Африки. WCF-сервис мой же. события, я так понимаю, как раз для WPF и создаются ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 12:33 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
yabsPetro123, да никакой не из Африки. WCF-сервис мой же. события, я так понимаю, как раз для WPF и создаются И у меня тоже мой. Только у меня в сети, а не там гле клиент. ... Вот упрямый. У тебя модель это прокси классы? Ну и делай. Зачем тебя уговаривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 12:52 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
yabs, Если речь идет о байндинге, то сгенерировано все верно. Для справки, такую генерацию дает ключ /edb для SLSvcUtil.exe и другого ключа просто нет (автоматическое генерирование прокси основано ни на чем, кроме как SLSvcUtil.exe ). WPF прибайндивает к экземпляру класса, а не к его содержимому. Строка - иммютэбл обьект и основываясь только на содержимом строки, вы потеряете байндинг, когда строка та же самая, но экземпляры строки разные. Пересмотрите свою бизнес логику с учетом этого - это единственно, что можно сделать с моей точки зрения. Например, прибандивайте к другому члену класса, используя ковертер, а в конвертере анализируйте данную строку. Или на клиенте расширте класс новым членои класса с аналогичным подходом. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 16:50 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
RenziglovПересмотрите свою бизнес логику с учетом этого - это единственно, что можно сделать с моей точки зрения. Например, прибандивайте к другому члену класса, используя ковертер, а в конвертере анализируйте данную строку. Или на клиенте расширте класс новым членои класса с аналогичным подходом. Как-то так. другими словами - не надо делать биндинг к прокси классам АвтоГенерируемым на клиенте. Я так понял ваши слова. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 17:31 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
Petro123, >Я так понял ваши слова. Вы неправильно поняли мои слова. Речь идет о строке. Если вы присваиваете строке "сон", сгенерированный тригер срабатывает. Строка изменилась. Затем вы присваиваете "слон": сгенерированный тригер срабатывает. Строка изменилась. Если вы опять присвоите "слон" той же строке, тригер может сработать, а может и нет, все зависит от контекста. Например, s+=''; вызовет срабатывание, поскольку будет создана новая трока в памяти с тем же значением. А s=String.Concat(s, ''); не вызовет. Yabs хочет, чтоб ничего не срабатывало, ведь он опирается только на значение строки (значение то же), а не на обьект, который ее хранит (объект другой). Микрософт делает правильно, что проверяет объект, а не значение. Лучше перебдеть, чем недобдеть и пропустить событие. Под это и надо подстраиваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 18:04 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
RenziglovВы неправильно поняли мои слова.тут смешан вопрос: "Метод - равенество классов на значении а не по ссылке Value Equality" и "Правильная работа со сгенерированными классами" ТСкогда в студии делаешь "Create Service reference", на клиенте создается такое моё мнение что пусть в своих классах делает событие хоть по указателю-ссылке, хоть по значению(набор букв). Зависит от бизнес логики. А вот по поводу прокси классов(вы промолчали про них) я сказал что пусть их не трогает. Ну или "ваше" - конвертер оттуда данных в свою Модель и свои классы. Т.е. класс А прокси и пусть делает класс Б, но уже свой клиентский. А там, как хочет. Хоть переопределяет Equals. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 18:40 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
Petro123, >Хоть переопределяет Equals. Он ничего не может переопределить. При следующем обновлении ссылок на клиентской стороне все его переопределения исчезнут. В загловках этих автоматически сгенерированных файлов так прямо об этом и говорится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 19:47 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
RenziglovPetro123, >Хоть переопределяет Equals. Он ничего не может переопределить. При следующем обновлении ссылок на клиентской стороне все его переопределения исчезнут. В загловках этих автоматически сгенерированных файлов так прямо об этом и говорится.я тебе три раза об этом сказал. Переопределить на своем классе и не трогать прокси класс. Тот что обновляется при обновлении ссылки называется прокси класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 22:00 |
|
WCF, генерация классов на клиенте
|
|||
---|---|---|---|
#18+
Petro123yabs, Я бы не мешал все в одну кучу. Прокси классы генерируемые служать исключительно чтобы передать данные через сеть и геерогенную среду. Т.е. полученные данные залить в Модель по стандарту MVVP например. А там уже твои события. Кроме того, прокси классы могут быть в Африке и менятся другой информационной системой. Это объекты сервиса сервера. Нельзя привязывать к ГУИ. "геерогенную среда" - Пётр123, ты становишься опасным ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 09:46 |
|
|
Start [/forum/topic.php?fid=19&fpage=2&tid=1396676]: |
0ms |
get settings: |
16ms |
get forum list: |
7ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
271ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 366ms |
0 / 0 |