Наследование C# и переопределяющий основные свойства

Вы запускаете ZAP в Docker и пытаетесь подключиться к http: // localhost: 8080 / v2 / bla Однако, если вы фактически не запустили свое приложение в контейнере Docker, оно не будет доступно через localhost в образе докера. Вы можете подтвердить это, открыв оболочку в образе док-станции ZAP и выполнив:

curl http: // localhost: 8080 / v2 / bla

blockquote>

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

13
задан jnylen 13 May 2009 в 13:53
поделиться

5 ответов

It's not working cause the "new" keyword doesn't override it just "hides".

This means that if you call Checked on an instance of object that is referenced through the type definition of MyListViewItem you will run your code. However the ListView references to this object via the type definition of ListViewItem and therefore will not call your "new" method.

"new" is not override. The better solution is to probably handle the code in a custom list view. It isn't really that ugly.

18
ответ дан 1 December 2019 в 20:01
поделиться

new не переопределяет элемент base . Он объявляет новый метод с тем же именем. В VB.NET это называется Shadows .

Действительно, new не делает ничего, кроме отключения предупреждения компилятора. Член, который вы не объявляете как переопределение (и вы можете сделать это, только если элемент base является виртуальным или переопределенным ]), будет полностью не имеет отношения к дереву наследования базового члена .

9
ответ дан 1 December 2019 в 20:01
поделиться

Предполагая, что свойство ListViewItem . Checked является виртуальным, вам необходимо переопределить его:

public override bool Checked
3
ответ дан 1 December 2019 в 20:01
поделиться

Свойство ListViewItem.Checked не является виртуальным (см. Документ MSDN здесь ), поэтому вы не сможете изменить его поведение таким образом. Вам нужно будет использовать событие или производный от ListView и переопределить ListView.OnItemChecked , чтобы изменить поведение.

1
ответ дан 1 December 2019 в 20:01
поделиться

Вместо того, чтобы создавать свой собственный ListViewItem, почему бы не создать отдельный тип для хранения ваших пользовательских данных, а затем назначить каждому свойству тега ListViewItem ссылку на пользовательские данные?

Это шаблон, который я использую в течение некоторого времени, и он работает очень хорошо. Что касается настраиваемого действия, когда элементы отмечены, просто обрабатывайте соответствующие события в представлении списка.

1
ответ дан 1 December 2019 в 20:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: