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 #.