Обратитесь к методу C # из JavaScript, не вызывая его - PullRequest
1 голос
/ 16 октября 2011

У меня есть элемент управления WebBrowser, настроенный с ObjectForScripting, так что я могу вызывать методы C # из JavaScript, размещенного в элементе управления браузера.

Кажется, все идет хорошо, за исключением того, что в моих модульных тестах у меня есть некоторые проверки окна. Я использую внешние методы, и получается, что ...

window.external.MyMethod

... кажется, работает так же, как ...

window.external.MyMethod()

Что если мне понадобится ссылка на метод? Или в случае моего модульного теста:

typeof(window.external.MyMethod) === 'function'

Но при этом вызывается метод (и происходит сбой, поскольку он возвращает тип того, что было возвращено методом)

Как получить ссылку на метод, не вызывая его?

1 Ответ

0 голосов
/ 17 октября 2011

Глядя на то, что документация я мог бы найти, похоже, что ссылка на любого участника window.external инициирует вызов хосту:

... ссылка на«window.external.speech» будет вызывать хост для разрешения имени «речь».

Я не совсем знаком с этим API, но кажется, что вместо этого вы могли бы что-то сделатьнапример:

window.external.checkType('MyMethod') === 'function'

Где checkType - это функция, которую вы объявляете в своем коде C #, которая может сообщить вам тип предоставленного свойства.

...