Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Простите за примитивный вопрос (смотрите всередине MyClass.SomeVirtualMethod): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 17:48 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Знаю, что можно через reflection, но не хочу так делать. Если бы метод был public, сделал бы Код: plaintext 1. почему-то не верится, что не существует нормального способа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 18:45 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
по нормальному нельзя. Тут уже обсуждался помоему этот вопрос. Есть мнение, что если возникает такая ситуация - надо перепроектировать классы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 19:06 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Dronopotamusтак низя в c#:) Если хорошо учить матчасть, то многие "низя" превращаются в "немножко можно"... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Если "замещать" (override) виртуальный метод супер-класса, то тады действительно "низя", а если "скрывать" (new или ничего не писать) - то "немножко можно"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 19:08 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Ihor BobakЗнаю, что можно через reflection, но не хочу так делать. Если бы метод был public, сделал бы Код: plaintext 1. пардон, не обратил внимания, что метод - protected... (счаз попробую с ним) А то, что вы хотите сделать на "замещенном" (override) методе с приведением this на SuperBase - приведет к бесконечному циклу вызовов MyClass.SomeVirtualMethod() (только что проверял). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 19:15 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
угу и чего получится? Код: plaintext 1. MyClass has invoked with SuperBase additions! Base has invoked! метод то виртуальный :) или предлагаешь в Base тоже new написать? а вообщето там методы protected знаток матчасти, хех ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 19:19 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Dronopotamus метод то виртуальный :) или предлагаешь в Base тоже new написать? А почему бы и нет? Если есть задача "пробиться" к методам супер-класса - можно и в Base написать new (своя же рука пишет). Dronopotamus а вообщето там методы protected про это я уже "оговорился"... тороплюсь, понимаешь... с protected все гораздо хуже, чем я ожидал... :((( Dronopotamus знаток матчасти, хех да и ладно, не претендую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 19:35 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Ну уж не думал, что будет столько ответов. Расскрываем занавес: SuperBase = System.Web.UI.WebControls.Image, Base = System.Web.UI.WebControls.ImageButton, MyClass = public class XPImageButton: ImageButton. SomeVirtualMethod = protected override void AddAttributesToRender То есть, нужно из моего XPImageButton.AddAttributesToRender вызвать напрямую Image.AddAttributesToRender и НЕ вызвать ImageButton.AddAttributesToRender. Менять код классов Image и ImageButton нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 22:55 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Ihor BobakМенять код классов Image и ImageButton нельзя. Кто бы сомневался... Вот начинают люди "темнить", и создается такое впечатление, что чел. хочет "пробиться" в супер-класс своего собственного изготовления... (оттого и советы такие, по принципу - "каков вопрос таков и ответ", лишь бы "принцип решения" показать). Ну а насчет AddAttributesToRender, похоже, что ничего другого не остается, как - написать 3 потомка-"враппера" для каждого из классов CLR и добавить в них свои public методы типа My AddAttributesToRender (один virtual и 2 new), в которых вызывать "родной" AddAttributesToRender. З.Ы. это "быстрый" путь, не уверен, что чересчур правильный... ("медленный" - продолжать изыскания) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 10:11 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
[quot qu-qu... написать 3 потомка-"враппера" для каждого из классов CLR и добавить в них свои public методы типа My AddAttributesToRender ...[/quot] Хотя, нет, бред какой-то написал, похоже... это уже "множественное наследование" получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 10:20 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Кстати, насчет этого пассажа: Ihor Bobak... вызвать напрямую Image.AddAttributesToRender и НЕ вызвать ImageButton.AddAttributesToRender ... А вы уверены, что реализации AddAttributesToRender у классов Image и ImageButton чем-то отличаются друг-от-друга и/или от реализации этого же метода в WebControl? К чему огород-то весь городить? Мне даже интересно стало, что такое может сделать Image .AddAttributesToRender чего не в состоянии сделать ImageButton .AddAttributesToRender? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 10:36 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Для тех, кто не знает: есть такой проэкт Mono - ".NET for Linux". Его модель классов и поведение методов/свойств совпадает с родным .NET. Вдобавок есть исходники. Так вот, в Image: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. в ImageButton: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Поведение ImageButton - то что надо для моего потомка XPImageButton, вот только тот факт, что он рендерит <input type=image> меня не устраивает (долго объяснять почему - можем отркрыть для этого другой топик). Поэтому делаю так: перекрываю его TagKey (чтобы рендерился <img> а не <input type="image">) и перекрываю AddAttributesToRender, в котором надо сделаь: 1) onclick=__doPostBack(...) - без проблем 2) вызвать base.base.AddAttributesToRender, который рендерит все остальные атрибуты Image и WebControl. Вопрос: а почему нельзя вызвать base.AddAttributesToRender? Ответ - два лишних атрибута (type и name) будет выведено в <img> :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 12:23 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Ihor Bobak SuperBase = System.Web.UI.WebControls.Image, Base = System.Web.UI.WebControls.ImageButton, MyClass = public class XPImageButton: ImageButton. SomeVirtualMethod = protected override void AddAttributesToRender имхо единственный вариант - наследоваться от Image и реализовывать всё, что есть в ImageButton + свой AddAttributesToRenderer. Я посмотрел декомпилером - там не много! Короче рефлектор тебе в помощь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 12:27 |
|
||
|
base.base.Method
|
|||
|---|---|---|---|
|
#18+
Ihor Bobak... два лишних атрибута (type и name) будет выведено в <img> :( Это, наверное, для тех было написано, кто исходники читать не умеет... Вопрос в следующем, вы используете Mono просто как пример того, что реализации методов AddAttributesToRender про которые я спрашивал - действительно разные, или вы его используете как "платформу" для своей разработки? Хотя, вряд ли как "платформу", т.к. и топика данного - тогда не должно было быть... (добавил новый класс с нужной функциональностью и "дело в шляпе"). Впрочем, и на "родном" ASP.NET это не возбраняется, можете из того же Mono взять исходники нужных вам классов и дописать к ним необходимую функциональность на собственных public методах, в собственных реализациях типов MyImage, MyImageButton, MyClass... З.Ы. как говорится: "вам главное шашечки, или - ехать?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=1022&tid=1439032]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 349ms |

| 0 / 0 |
