2009-03-10 6 views
0

Können Sie eine vb.net API-Funktion mit Reflektion von JavaScript-Code aufrufen?JavaScript-Triggering - Reflexion von vb.net API-Aufrufe?

Ich habe gerade angefangen, mit Reflexion zu spielen, ich habe dieses Code-Schnipsel, das funktioniert, ich möchte es zu einer Javascript-Seite ändern.

Dim RawPlugin As Reflection.Assembly 
RawPlugin = Reflection.Assembly.LoadFrom("C:\Inetpub\wwwroot\demo\MasterApplication\getSession\bin\Debug\getSession.dll") 

Dim Instance As Object 
Instance = RawPlugin.CreateInstance("getSession.class1", True, _ 
    Reflection.BindingFlags.Default, Nothing, Nothing, Nothing, Nothing) 

theValue = Instance.getSessionValue(Session).ToString 

Weiß jemand, ob das möglich ist?

Antwort

2

Clientseitiger Code spricht nicht direkt mit serverseitigem Code. Wenn die von Ihnen gesuchte Information zwischen den Seitenanforderungen durch den Benutzer nicht beeinflusst wird, haben Sie zwei Möglichkeiten: Den Server-seitigen Wert mit der Seitenanforderung an den Client ausgeben (so ist der Wert innerhalb einer JavaScript-Variablen auf der Seite) oder mach es zu einem Ajax-Ruf. Wenn die Information zwischen Seitenanforderungen möglicherweise veraltet ist, besteht die einzige Möglichkeit darin, den Wert eines Ajax-Aufrufs zurückzugeben.

+0

genial, das ist genau das, was wir brauchen, um das Problem zu beheben ... einige Male ist es notwendig, außerhalb der Felder zu denken. –

0

Nein, Sie können nicht Reflexionen, oder irgendetwas .Net für die Angelegenheit, direkt von Javascript verwenden.

+0

LOL - OK, ich bin falsch. Viel Spaß beim Nachdenken in Javascript –

+0

Haben Sie sich Ihre Frage angesehen? Ich versichere Ihnen, dass die Antwort auf die Frage "Kannst du eine vb.net API-Funktion aus Javascript mit Reflektion aufrufen?" ist zweifellos NEIN. Verwenden Sie AJAX alles was Sie wollen, es ändert nicht [Ihren Code] zu Javascript. –

+0

Entspannt euch, seid nicht so aufgeregt. Er benutzt einen Ajax-Aufruf, um eine Funktion auf dem Server auszulösen, die Reflektion nutzt, um ihre Arbeit zu erledigen ... Er macht keine Reflektion direkt aus Javascript. – 7wp

1

In ASP.Net wird der .Net-Code auf Ihrem Webserver ausgeführt. Javascript wird auf dem Computer des Benutzers in seinem Browser ausgeführt. Dieser Benutzer hat möglicherweise nicht einmal Windows, geschweige denn die .NET-Laufzeit.

In diesem Fall ist Ihr Benutzer möglicherweise nicht einmal Javascript aktiviert.

+0

Was ist, wenn für sein Programm eine In-House-Anwendung von Mitarbeitern verwendet wird, und die Voraussetzung, es zu verwenden ist Javascript aktiviert haben? Dann verschwindet das Problem, wo Javascript aktiviert ist. – 7wp

+0

Beachten Sie auch, dass er versucht, das Stück Code auf dem Server über Ajax-Aufruf auszulösen. Reflexion nicht direkt in Javascript aufrufen, wie Sie vielleicht denken. – 7wp

+0

das ist richtig, ich hätte in meinem Beitrag angegeben, dass das die Anforderungen waren, dass jeder Javascript aktiviert hat. –

-1

die soution:

können Sie erstellen Rückrufe mit Ajax, eine aspx Seite zu rufen, dass beim Laden der Seite, führt den Code hinter, dass dann die Reflexion in .net erstellt und übergibt dann das Endergebnis zurück auf der Javascript-Seite, das funktioniert, ich weiß, dies tut ... aber das bedeutet, dass Sie innerhalb des Projekts müssen Sie die Rückrufseite (muss kompiliert werden, wenn es Änderungen gibt).

Ich denke, was ich tun muss, um [zu verwenden JavaScript Ajax-Rückruf-Seite aufzurufen, die die Reflexion führt] ist

+0

genau das habe ich gesagt, aber aus irgendeinem Grund wurde ich abgelehnt. Sie können eine JS-only-Lösung wie jQuery verwenden, um eine beliebige Seite Ihrer Anwendung aufzurufen und den resultierenden Text als "Webdienst" -Daten zu verwenden. In diesem Fall ist "Web-Service" nur ein allgemeiner Begriff für jede Web-Ressource. – Rich

+0

Ich habe Sie aufgezogen, da Ihre Antwort korrekt war, ich weiß nicht, wer Sie abgelehnt hat .. –