Создать COM / ActiveXObject в C #, использовать из JScript, с простым событием

Я хотел бы создать COM-объект в C # и использовать его через IDispatch из JScript. Эта часть довольно проста.

Я также хочу реализовать простые обратные вызовы для объекта COM, аналогичные событию, предоставляемому объектом XmlHttpRequest, который можно использовать в браузере. Эта модель позволяет Javascript присоединять обработчики событий следующим образом:

var xmlhttp = new ActiveXObject("MSXML.XMLHTTP"); 
xmlhttp.onReadyStateChange = function() {
  ...
};

Я хочу, чтобы мой код JScript на стороне клиента выглядел так:

var myObject = new ActiveXObject("MyObject.ProgId");
myObject.onMyCustomEvent = function(..args here..) { 
   ...
};

Как выглядит код C #? Мне нравится общий случай - я хотел бы иметь возможность передавать аргументы обратно в Javascript fn.

Я виделКак сделать элемент управления ActiveX, написанный на C #, вызывать события в JavaScript при нажатии? , но ответы там выглядят действительно сложными для реализации и сложными в использовании.

ОтЭта статьяПохоже, что события XMLHttpRequest не являются событиями COM.onreadystatechange это свойство типаIDispatch, Когда клиенты сценариев устанавливают это свойство для функции, JScript отображает его как объект IDispatch.

Единственная проблема, которая остается, - это вызвать IDispatch из C #.

Ответы на вопрос(2)

Ваш ответ на вопрос