2017-01-09 4 views
0

Я только начал использовать белый цвет, и после успешного прохождения некоторых тестов я просматриваю некоторые источники, чтобы лучше понять, как все это работает.Почему все методы экранных объектов должны быть объявлены виртуальными?

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

ответ

4

Я предполагаю, что Уайт использует DynamicProxy до create proxy objects. Сайт DynamicProxy определяет:

Вы можете использовать DynamicProxy для создания облегченных прокси на лету для одного или нескольких интерфейсов или даже конкретных классов (но будут перехвачены только виртуальные методы).

Пометив свойства и методы как виртуальные, среда выполнения вызовет методы прокси-сервера вместо методов вызова в классе, на котором основан прокси-сервер.

Смежные вопросы