Utwórz COM / ActiveXObject w C #, użyj JScript, z prostym zdarzeniem

Chciałbym utworzyć obiekt COM w C # i używać go poprzez IDispatch z JScript. Ta część jest całkiem prosta.

Chcę także zaimplementować proste wywołania zwrotne na obiekcie COM, podobnie jak zdarzenie odsłonięte przez obiekt XmlHttpRequest, który może być używany w przeglądarce. Ten model pozwala Javascriptowi na dołączanie programów obsługi zdarzeń w następujący sposób:

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

Chcę, aby mój kod JScript po stronie klienta wyglądał tak:

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

Jak wygląda kod C #? Chciałbym ogólny przypadek - chciałbym móc przekazać argumenty z powrotem do JavaScript fn.

widziałemJak mogę zrobić formant ActiveX napisany za pomocą C # podnieść zdarzenia w JavaScript po kliknięciu? , ale odpowiedzi tam wyglądają naprawdę skomplikowane i skomplikowane w użyciu.

ZTen artykułwydaje się, że zdarzenia XMLHttpRequest nie są zdarzeniami COM. Theonreadystatechange jest własnością typuIDispatch. Gdy klienci skryptów ustawiają tę właściwość na funkcję, JScript konfiguruje ją jako obiekt IDispatch.

Pozostaje tylko problem z wywołaniem IDispatch z C #.

questionAnswers(2)

yourAnswerToTheQuestion